forked from TrueCloudLab/frostfs-node
[#1679] node: Fix 'gocognit' warning
Change-Id: I6e2a278af51869c05c306c2910ba85130e39532e Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
This commit is contained in:
parent
0c5d74729c
commit
b4b053cecd
1 changed files with 19 additions and 10 deletions
|
@ -84,17 +84,11 @@ func (e *StorageEngine) lockSingle(ctx context.Context, idCnr cid.ID, locker, lo
|
||||||
var siErr *objectSDK.SplitInfoError
|
var siErr *objectSDK.SplitInfoError
|
||||||
var eiErr *objectSDK.ECInfoError
|
var eiErr *objectSDK.ECInfoError
|
||||||
if errors.As(err, &eiErr) {
|
if errors.As(err, &eiErr) {
|
||||||
eclocked := []oid.ID{locked}
|
eclocked, ok := e.checkECLocked(ctx, sh, idCnr, locker, locked, eiErr)
|
||||||
for _, chunk := range eiErr.ECInfo().Chunks {
|
if !ok {
|
||||||
var objID oid.ID
|
return false
|
||||||
err = objID.ReadFromV2(chunk.ID)
|
|
||||||
if err != nil {
|
|
||||||
e.reportShardError(ctx, sh, "could not lock object in shard", err, zap.Stringer("container_id", idCnr),
|
|
||||||
zap.Stringer("locker_id", locker), zap.Stringer("locked_id", locked))
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
eclocked = append(eclocked, objID)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
err = sh.Lock(ctx, idCnr, locker, eclocked)
|
err = sh.Lock(ctx, idCnr, locker, eclocked)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.reportShardError(ctx, sh, "could not lock object in shard", err, zap.Stringer("container_id", idCnr),
|
e.reportShardError(ctx, sh, "could not lock object in shard", err, zap.Stringer("container_id", idCnr),
|
||||||
|
@ -137,3 +131,18 @@ func (e *StorageEngine) lockSingle(ctx context.Context, idCnr cid.ID, locker, lo
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (e *StorageEngine) checkECLocked(ctx context.Context, sh hashedShard, idCnr cid.ID, locker, locked oid.ID, eiErr *objectSDK.ECInfoError) ([]oid.ID, bool) {
|
||||||
|
eclocked := []oid.ID{locked}
|
||||||
|
for _, chunk := range eiErr.ECInfo().Chunks {
|
||||||
|
var objID oid.ID
|
||||||
|
err := objID.ReadFromV2(chunk.ID)
|
||||||
|
if err != nil {
|
||||||
|
e.reportShardError(ctx, sh, "could not lock object in shard", err, zap.Stringer("container_id", idCnr),
|
||||||
|
zap.Stringer("locker_id", locker), zap.Stringer("locked_id", locked))
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
eclocked = append(eclocked, objID)
|
||||||
|
}
|
||||||
|
return eclocked, true
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue