diff --git a/pkg/local_object_storage/engine/evacuate.go b/pkg/local_object_storage/engine/evacuate.go index 3f127b75d9..34ba927709 100644 --- a/pkg/local_object_storage/engine/evacuate.go +++ b/pkg/local_object_storage/engine/evacuate.go @@ -148,8 +148,11 @@ mainLoop: } hrw.Sort(shards, addrHash) + e.log.Debug("sorted shards", zap.Strings("shards", shardsToStrings(shards)), zap.Stringer("addr", addr), zap.Uint64("hash", addrHash.Hash())) + for j := range shards { if _, ok := shardMap[shards[j].ID().String()]; ok { + e.log.Debug("skipping shard", zap.String("shards", shards[j].ID().String()), zap.Int("shard len", len(shardMap))) continue } putDone, exists := e.putToShard(shards[j].hashedShard, j, shards[j].pool, addr, PutPrm{obj: getRes.Object()}) @@ -164,6 +167,8 @@ mainLoop: } continue loop } + + e.log.Debug("shard tried but try another", zap.String("shard", shards[j].ID().String())) } if prm.handler == nil { @@ -187,3 +192,12 @@ mainLoop: zap.Strings("shard_ids", sidList)) return res, nil } + +func shardsToStrings(ss []pooledShard) []string { + res := make([]string, 0, len(ss)) + for _, s := range ss { + res = append(res, s.ID().String()) + } + + return res +} diff --git a/pkg/local_object_storage/engine/put.go b/pkg/local_object_storage/engine/put.go index a8791f37d2..62ec6da429 100644 --- a/pkg/local_object_storage/engine/put.go +++ b/pkg/local_object_storage/engine/put.go @@ -114,6 +114,8 @@ func (e *StorageEngine) putToShard(sh hashedShard, ind int, pool util.WorkerPool exists, err := sh.Exists(existPrm) if err != nil { + e.log.Warn("check object existence in shard relocation", zap.Error(err)) + if shard.IsErrObjectExpired(err) { // object is already found but // expired => do nothing with it @@ -138,6 +140,8 @@ func (e *StorageEngine) putToShard(sh hashedShard, ind int, pool util.WorkerPool } } + e.log.Warn("object already exist", zap.Stringer("addr", addr)) + return } @@ -149,6 +153,8 @@ func (e *StorageEngine) putToShard(sh hashedShard, ind int, pool util.WorkerPool _, err = sh.Put(putPrm) if err != nil { + e.log.Warn("could not put object to shard", zap.Error(err), zap.Stringer("shard_id", sh.ID())) + if errors.Is(err, shard.ErrReadOnlyMode) || errors.Is(err, blobstor.ErrNoPlaceFound) || errors.Is(err, common.ErrReadOnly) || errors.Is(err, common.ErrNoSpace) { e.log.Warn("could not put object to shard", @@ -163,6 +169,7 @@ func (e *StorageEngine) putToShard(sh hashedShard, ind int, pool util.WorkerPool putSuccess = true }); err != nil { + e.log.Warn("pool's submitting put", zap.Error(err)) close(exitCh) }