[#1598] engine: Drop unnecessary result structs
All checks were successful
DCO action / DCO (pull_request) Successful in 31s
Tests and linters / Run gofumpt (pull_request) Successful in 29s
Vulncheck / Vulncheck (pull_request) Successful in 54s
Build / Build Components (pull_request) Successful in 1m29s
Pre-commit hooks / Pre-commit (pull_request) Successful in 1m28s
Tests and linters / gopls check (pull_request) Successful in 2m15s
Tests and linters / Lint (pull_request) Successful in 2m41s
Tests and linters / Staticcheck (pull_request) Successful in 2m49s
Tests and linters / Tests (pull_request) Successful in 3m52s
Tests and linters / Tests with -race (pull_request) Successful in 5m1s
Vulncheck / Vulncheck (push) Successful in 1m5s
Pre-commit hooks / Pre-commit (push) Successful in 1m19s
Build / Build Components (push) Successful in 1m36s
Tests and linters / gopls check (push) Successful in 2m16s
Tests and linters / Run gofumpt (push) Successful in 2m32s
Tests and linters / Staticcheck (push) Successful in 2m49s
Tests and linters / Lint (push) Successful in 3m10s
Tests and linters / Tests (push) Successful in 3m12s
Tests and linters / Tests with -race (push) Successful in 4m15s
All checks were successful
DCO action / DCO (pull_request) Successful in 31s
Tests and linters / Run gofumpt (pull_request) Successful in 29s
Vulncheck / Vulncheck (pull_request) Successful in 54s
Build / Build Components (pull_request) Successful in 1m29s
Pre-commit hooks / Pre-commit (pull_request) Successful in 1m28s
Tests and linters / gopls check (pull_request) Successful in 2m15s
Tests and linters / Lint (pull_request) Successful in 2m41s
Tests and linters / Staticcheck (pull_request) Successful in 2m49s
Tests and linters / Tests (pull_request) Successful in 3m52s
Tests and linters / Tests with -race (pull_request) Successful in 5m1s
Vulncheck / Vulncheck (push) Successful in 1m5s
Pre-commit hooks / Pre-commit (push) Successful in 1m19s
Build / Build Components (push) Successful in 1m36s
Tests and linters / gopls check (push) Successful in 2m16s
Tests and linters / Run gofumpt (push) Successful in 2m32s
Tests and linters / Staticcheck (push) Successful in 2m49s
Tests and linters / Lint (push) Successful in 3m10s
Tests and linters / Tests (push) Successful in 3m12s
Tests and linters / Tests with -race (push) Successful in 4m15s
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
parent
fb928616cc
commit
eff95bd632
7 changed files with 36 additions and 59 deletions
|
@ -215,8 +215,7 @@ func addPolicer(c *cfg, keyStorage *util.KeyStorage, clientConstructor *cache.Cl
|
|||
prm.MarkAsGarbage(addr)
|
||||
prm.WithForceRemoval()
|
||||
|
||||
_, err := ls.Inhume(ctx, prm)
|
||||
return err
|
||||
return ls.Inhume(ctx, prm)
|
||||
}
|
||||
|
||||
remoteReader := objectService.NewRemoteReader(keyStorage, clientConstructor)
|
||||
|
@ -266,8 +265,7 @@ func addPolicer(c *cfg, keyStorage *util.KeyStorage, clientConstructor *cache.Cl
|
|||
var inhumePrm engine.InhumePrm
|
||||
inhumePrm.MarkAsGarbage(addr)
|
||||
|
||||
_, err := ls.Inhume(ctx, inhumePrm)
|
||||
if err != nil {
|
||||
if err := ls.Inhume(ctx, inhumePrm); err != nil {
|
||||
c.log.Warn(ctx, logs.FrostFSNodeCouldNotInhumeMarkRedundantCopyAsGarbage,
|
||||
zap.Error(err),
|
||||
)
|
||||
|
@ -476,8 +474,7 @@ func (e engineWithoutNotifications) Delete(ctx context.Context, tombstone oid.Ad
|
|||
|
||||
prm.WithTarget(tombstone, addrs...)
|
||||
|
||||
_, err := e.engine.Inhume(ctx, prm)
|
||||
return err
|
||||
return e.engine.Inhume(ctx, prm)
|
||||
}
|
||||
|
||||
func (e engineWithoutNotifications) Lock(ctx context.Context, locker oid.Address, toLock []oid.ID) error {
|
||||
|
|
|
@ -24,11 +24,6 @@ type DeletePrm struct {
|
|||
forceRemoval bool
|
||||
}
|
||||
|
||||
// DeleteRes groups the resulting values of Delete operation.
|
||||
type DeleteRes struct{}
|
||||
|
||||
var deleteRes = DeleteRes{}
|
||||
|
||||
// WithAddress is a Delete option to set the addresses of the objects to delete.
|
||||
//
|
||||
// Option is required.
|
||||
|
@ -53,7 +48,7 @@ func (p *DeletePrm) WithForceRemoval() {
|
|||
// NOTE: Marks any object to be deleted (despite any prohibitions
|
||||
// on operations with that object) if WithForceRemoval option has
|
||||
// been provided.
|
||||
func (e *StorageEngine) Delete(ctx context.Context, prm DeletePrm) (res DeleteRes, err error) {
|
||||
func (e *StorageEngine) Delete(ctx context.Context, prm DeletePrm) error {
|
||||
ctx, span := tracing.StartSpanFromContext(ctx, "StorageEngine.Delete",
|
||||
trace.WithAttributes(
|
||||
attribute.String("address", prm.addr.EncodeToString()),
|
||||
|
@ -62,15 +57,12 @@ func (e *StorageEngine) Delete(ctx context.Context, prm DeletePrm) (res DeleteRe
|
|||
defer span.End()
|
||||
defer elapsed("Delete", e.metrics.AddMethodDuration)()
|
||||
|
||||
err = e.execIfNotBlocked(func() error {
|
||||
res, err = e.delete(ctx, prm)
|
||||
return err
|
||||
return e.execIfNotBlocked(func() error {
|
||||
return e.delete(ctx, prm)
|
||||
})
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (e *StorageEngine) delete(ctx context.Context, prm DeletePrm) (DeleteRes, error) {
|
||||
func (e *StorageEngine) delete(ctx context.Context, prm DeletePrm) error {
|
||||
var locked struct {
|
||||
is bool
|
||||
}
|
||||
|
@ -128,14 +120,14 @@ func (e *StorageEngine) delete(ctx context.Context, prm DeletePrm) (DeleteRes, e
|
|||
})
|
||||
|
||||
if locked.is {
|
||||
return deleteRes, new(apistatus.ObjectLocked)
|
||||
return new(apistatus.ObjectLocked)
|
||||
}
|
||||
|
||||
if splitInfo != nil {
|
||||
e.deleteChildren(ctx, prm.addr, prm.forceRemoval, splitInfo.SplitID())
|
||||
}
|
||||
|
||||
return deleteRes, nil
|
||||
return nil
|
||||
}
|
||||
|
||||
func (e *StorageEngine) deleteChildren(ctx context.Context, addr oid.Address, force bool, splitID *objectSDK.SplitID) {
|
||||
|
|
|
@ -70,8 +70,7 @@ func TestDeleteBigObject(t *testing.T) {
|
|||
deletePrm.WithForceRemoval()
|
||||
deletePrm.WithAddress(addrParent)
|
||||
|
||||
_, err := e.Delete(context.Background(), deletePrm)
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, e.Delete(context.Background(), deletePrm))
|
||||
|
||||
checkGetError[*apistatus.ObjectNotFound](t, e, addrParent, true)
|
||||
checkGetError[*apistatus.ObjectNotFound](t, e, addrLink, true)
|
||||
|
@ -141,8 +140,7 @@ func TestDeleteBigObjectWithoutGC(t *testing.T) {
|
|||
deletePrm.WithForceRemoval()
|
||||
deletePrm.WithAddress(addrParent)
|
||||
|
||||
_, err := e.Delete(context.Background(), deletePrm)
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, e.Delete(context.Background(), deletePrm))
|
||||
|
||||
checkGetError[*apistatus.ObjectNotFound](t, e, addrParent, true)
|
||||
checkGetError[*apistatus.ObjectNotFound](t, e, addrLink, true)
|
||||
|
@ -153,7 +151,7 @@ func TestDeleteBigObjectWithoutGC(t *testing.T) {
|
|||
// delete physical
|
||||
var delPrm shard.DeletePrm
|
||||
delPrm.SetAddresses(addrParent)
|
||||
_, err = s1.Delete(context.Background(), delPrm)
|
||||
_, err := s1.Delete(context.Background(), delPrm)
|
||||
require.NoError(t, err)
|
||||
|
||||
delPrm.SetAddresses(addrLink)
|
||||
|
|
|
@ -27,11 +27,6 @@ type InhumePrm struct {
|
|||
forceRemoval bool
|
||||
}
|
||||
|
||||
// InhumeRes encapsulates results of inhume operation.
|
||||
type InhumeRes struct{}
|
||||
|
||||
var inhumeRes = InhumeRes{}
|
||||
|
||||
// WithTarget sets a list of objects that should be inhumed and tombstone address
|
||||
// as the reason for inhume operation.
|
||||
//
|
||||
|
@ -69,23 +64,20 @@ var errInhumeFailure = errors.New("inhume operation failed")
|
|||
// with that object) if WithForceRemoval option has been provided.
|
||||
//
|
||||
// Returns an error if executions are blocked (see BlockExecution).
|
||||
func (e *StorageEngine) Inhume(ctx context.Context, prm InhumePrm) (res InhumeRes, err error) {
|
||||
func (e *StorageEngine) Inhume(ctx context.Context, prm InhumePrm) error {
|
||||
ctx, span := tracing.StartSpanFromContext(ctx, "StorageEngine.Inhume")
|
||||
defer span.End()
|
||||
defer elapsed("Inhume", e.metrics.AddMethodDuration)()
|
||||
|
||||
err = e.execIfNotBlocked(func() error {
|
||||
res, err = e.inhume(ctx, prm)
|
||||
return err
|
||||
return e.execIfNotBlocked(func() error {
|
||||
return e.inhume(ctx, prm)
|
||||
})
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (e *StorageEngine) inhume(ctx context.Context, prm InhumePrm) (InhumeRes, error) {
|
||||
func (e *StorageEngine) inhume(ctx context.Context, prm InhumePrm) error {
|
||||
addrsPerShard, err := e.groupObjectsByShard(ctx, prm.addrs, !prm.forceRemoval)
|
||||
if err != nil {
|
||||
return inhumeRes, err
|
||||
return err
|
||||
}
|
||||
|
||||
var shPrm shard.InhumePrm
|
||||
|
@ -109,7 +101,7 @@ func (e *StorageEngine) inhume(ctx context.Context, prm InhumePrm) (InhumeRes, e
|
|||
zap.String("shard_id", shardID),
|
||||
zap.String("trace_id", tracingPkg.GetTraceID(ctx)),
|
||||
)
|
||||
return inhumeRes, errInhumeFailure
|
||||
return errInhumeFailure
|
||||
}
|
||||
|
||||
if _, err := sh.Inhume(ctx, shPrm); err != nil {
|
||||
|
@ -121,11 +113,11 @@ func (e *StorageEngine) inhume(ctx context.Context, prm InhumePrm) (InhumeRes, e
|
|||
default:
|
||||
e.reportShardError(ctx, sh, "couldn't inhume object in shard", err)
|
||||
}
|
||||
return inhumeRes, err
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return inhumeRes, nil
|
||||
return nil
|
||||
}
|
||||
|
||||
// groupObjectsByShard groups objects based on the shard(s) they are stored on.
|
||||
|
|
|
@ -55,7 +55,7 @@ func TestStorageEngine_Inhume(t *testing.T) {
|
|||
var inhumePrm InhumePrm
|
||||
inhumePrm.WithTarget(tombstoneID, object.AddressOf(parent))
|
||||
|
||||
_, err = e.Inhume(context.Background(), inhumePrm)
|
||||
err = e.Inhume(context.Background(), inhumePrm)
|
||||
require.NoError(t, err)
|
||||
|
||||
addrs, err := Select(context.Background(), e, cnr, false, fs)
|
||||
|
@ -85,7 +85,7 @@ func TestStorageEngine_Inhume(t *testing.T) {
|
|||
var inhumePrm InhumePrm
|
||||
inhumePrm.WithTarget(tombstoneID, object.AddressOf(parent))
|
||||
|
||||
_, err = e.Inhume(context.Background(), inhumePrm)
|
||||
err = e.Inhume(context.Background(), inhumePrm)
|
||||
require.NoError(t, err)
|
||||
|
||||
addrs, err := Select(context.Background(), e, cnr, false, fs)
|
||||
|
@ -128,7 +128,7 @@ func TestStorageEngine_ECInhume(t *testing.T) {
|
|||
|
||||
var inhumePrm InhumePrm
|
||||
inhumePrm.WithTarget(tombstoneObjectAddress, parentObjectAddress)
|
||||
_, err = e.Inhume(context.Background(), inhumePrm)
|
||||
err = e.Inhume(context.Background(), inhumePrm)
|
||||
require.NoError(t, err)
|
||||
|
||||
var alreadyRemoved *apistatus.ObjectAlreadyRemoved
|
||||
|
@ -173,7 +173,7 @@ func TestInhumeExpiredRegularObject(t *testing.T) {
|
|||
|
||||
var prm InhumePrm
|
||||
prm.WithTarget(ts, object.AddressOf(obj))
|
||||
_, err := engine.Inhume(context.Background(), prm)
|
||||
err := engine.Inhume(context.Background(), prm)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
|
@ -182,7 +182,7 @@ func TestInhumeExpiredRegularObject(t *testing.T) {
|
|||
|
||||
var prm InhumePrm
|
||||
prm.MarkAsGarbage(object.AddressOf(obj))
|
||||
_, err := engine.Inhume(context.Background(), prm)
|
||||
err := engine.Inhume(context.Background(), prm)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
}
|
||||
|
@ -237,7 +237,7 @@ func benchmarkInhumeMultipart(b *testing.B, numShards, numObjects int) {
|
|||
prm.WithTarget(ts, addrs...)
|
||||
|
||||
b.StartTimer()
|
||||
_, err := engine.Inhume(context.Background(), prm)
|
||||
err := engine.Inhume(context.Background(), prm)
|
||||
require.NoError(b, err)
|
||||
b.StopTimer()
|
||||
}
|
||||
|
|
|
@ -114,7 +114,7 @@ func TestLockUserScenario(t *testing.T) {
|
|||
inhumePrm.WithTarget(tombAddr, objAddr)
|
||||
|
||||
var objLockedErr *apistatus.ObjectLocked
|
||||
_, err = e.Inhume(context.Background(), inhumePrm)
|
||||
err = e.Inhume(context.Background(), inhumePrm)
|
||||
require.ErrorAs(t, err, &objLockedErr)
|
||||
|
||||
// 4.
|
||||
|
@ -127,7 +127,7 @@ func TestLockUserScenario(t *testing.T) {
|
|||
|
||||
inhumePrm.WithTarget(tombForLockAddr, lockerAddr)
|
||||
|
||||
_, err = e.Inhume(context.Background(), inhumePrm)
|
||||
err = e.Inhume(context.Background(), inhumePrm)
|
||||
require.ErrorIs(t, err, meta.ErrLockObjectRemoval)
|
||||
|
||||
// 5.
|
||||
|
@ -136,7 +136,7 @@ func TestLockUserScenario(t *testing.T) {
|
|||
inhumePrm.WithTarget(tombAddr, objAddr)
|
||||
|
||||
require.Eventually(t, func() bool {
|
||||
_, err = e.Inhume(context.Background(), inhumePrm)
|
||||
err = e.Inhume(context.Background(), inhumePrm)
|
||||
return err == nil
|
||||
}, 30*time.Second, time.Second)
|
||||
}
|
||||
|
@ -200,7 +200,7 @@ func TestLockExpiration(t *testing.T) {
|
|||
inhumePrm.WithTarget(tombAddr, objectcore.AddressOf(obj))
|
||||
|
||||
var objLockedErr *apistatus.ObjectLocked
|
||||
_, err = e.Inhume(context.Background(), inhumePrm)
|
||||
err = e.Inhume(context.Background(), inhumePrm)
|
||||
require.ErrorAs(t, err, &objLockedErr)
|
||||
|
||||
// 3.
|
||||
|
@ -212,7 +212,7 @@ func TestLockExpiration(t *testing.T) {
|
|||
inhumePrm.WithTarget(tombAddr, objectcore.AddressOf(obj))
|
||||
|
||||
require.Eventually(t, func() bool {
|
||||
_, err = e.Inhume(context.Background(), inhumePrm)
|
||||
err = e.Inhume(context.Background(), inhumePrm)
|
||||
return err == nil
|
||||
}, 30*time.Second, time.Second)
|
||||
}
|
||||
|
@ -270,12 +270,12 @@ func TestLockForceRemoval(t *testing.T) {
|
|||
inhumePrm.MarkAsGarbage(objectcore.AddressOf(obj))
|
||||
|
||||
var objLockedErr *apistatus.ObjectLocked
|
||||
_, err = e.Inhume(context.Background(), inhumePrm)
|
||||
err = e.Inhume(context.Background(), inhumePrm)
|
||||
require.ErrorAs(t, err, &objLockedErr)
|
||||
|
||||
inhumePrm.WithTarget(oidtest.Address(), objectcore.AddressOf(obj))
|
||||
|
||||
_, err = e.Inhume(context.Background(), inhumePrm)
|
||||
err = e.Inhume(context.Background(), inhumePrm)
|
||||
require.ErrorAs(t, err, &objLockedErr)
|
||||
|
||||
// 4.
|
||||
|
@ -283,13 +283,12 @@ func TestLockForceRemoval(t *testing.T) {
|
|||
deletePrm.WithAddress(objectcore.AddressOf(lock))
|
||||
deletePrm.WithForceRemoval()
|
||||
|
||||
_, err = e.Delete(context.Background(), deletePrm)
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, e.Delete(context.Background(), deletePrm))
|
||||
|
||||
// 5.
|
||||
inhumePrm.MarkAsGarbage(objectcore.AddressOf(obj))
|
||||
|
||||
_, err = e.Inhume(context.Background(), inhumePrm)
|
||||
err = e.Inhume(context.Background(), inhumePrm)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
|
|
|
@ -42,8 +42,7 @@ func (s *Server) DropObjects(ctx context.Context, req *control.DropObjectsReques
|
|||
prm.WithForceRemoval()
|
||||
prm.WithAddress(addrList[i])
|
||||
|
||||
_, err := s.s.Delete(ctx, prm)
|
||||
if err != nil && firstErr == nil {
|
||||
if err := s.s.Delete(ctx, prm); err != nil && firstErr == nil {
|
||||
firstErr = err
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue