[#230] engine: Stop on first SplitInfoError in Get method

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
Alex Vanin 2020-12-03 13:01:09 +03:00
parent a488d202e1
commit 3a37eda410
3 changed files with 14 additions and 23 deletions

View file

@ -61,7 +61,7 @@ func (e *StorageEngine) GetRange(prm *RngPrm) (*RngRes, error) {
var (
obj *object.Object
alreadyRemoved = false
outError = object.ErrNotFound
)
shPrm := new(shard.RngPrm).
@ -75,7 +75,7 @@ func (e *StorageEngine) GetRange(prm *RngPrm) (*RngRes, error) {
case errors.Is(err, object.ErrNotFound):
return false // ignore, go to next shard
case errors.Is(err, object.ErrAlreadyRemoved):
alreadyRemoved = true
outError = err
return true // stop, return it back
default:
@ -96,11 +96,7 @@ func (e *StorageEngine) GetRange(prm *RngPrm) (*RngRes, error) {
})
if obj == nil {
if alreadyRemoved {
return nil, object.ErrAlreadyRemoved
}
return nil, object.ErrNotFound
return nil, outError
}
return &RngRes{