forked from TrueCloudLab/frostfs-node
[#2024] services/object: Unify status errors
Signed-off-by: Evgenii Stratonikov <evgeniy@morphbits.ru>
This commit is contained in:
parent
871be9d63d
commit
51a9306e41
4 changed files with 6 additions and 5 deletions
|
@ -10,7 +10,7 @@ Changelog for NeoFS Node
|
||||||
### Fixed
|
### Fixed
|
||||||
- Open FSTree in sync mode by default (#1992)
|
- Open FSTree in sync mode by default (#1992)
|
||||||
- `neofs-cli container nodes`'s output (#1991)
|
- `neofs-cli container nodes`'s output (#1991)
|
||||||
- Do not panic with bad inputs for `GET_RANGE` (#2007)
|
- Do not panic and return correct errors for bad inputs in `GET_RANGE` (#2007, #2024)
|
||||||
- Correctly select the shard for applying tree service operations (#1996)
|
- Correctly select the shard for applying tree service operations (#1996)
|
||||||
- Physical child object removal by GC (#1699)
|
- Physical child object removal by GC (#1699)
|
||||||
- Increase error counter for write-cache flush errors (#1818)
|
- Increase error counter for write-cache flush errors (#1818)
|
||||||
|
|
|
@ -96,7 +96,7 @@ func (exec *execCtx) initFromChild(obj oid.ID) (prev *oid.ID, children []oid.ID)
|
||||||
if seekTo < seekOff || parSize < seekOff || parSize < seekTo {
|
if seekTo < seekOff || parSize < seekOff || parSize < seekTo {
|
||||||
var errOutOfRange apistatus.ObjectOutOfRange
|
var errOutOfRange apistatus.ObjectOutOfRange
|
||||||
|
|
||||||
exec.err = errOutOfRange
|
exec.err = &errOutOfRange
|
||||||
exec.status = statusOutOfRange
|
exec.status = statusOutOfRange
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
|
@ -156,7 +156,7 @@ func (c *clientWrapper) getObject(exec *execCtx, info coreclient.NodeInfo) (*obj
|
||||||
to := from + rng.GetLength()
|
to := from + rng.GetLength()
|
||||||
|
|
||||||
if pLen := uint64(len(payload)); to < from || pLen < from || pLen < to {
|
if pLen := uint64(len(payload)); to < from || pLen < from || pLen < to {
|
||||||
return nil, apistatus.ObjectOutOfRange{}
|
return nil, new(apistatus.ObjectOutOfRange)
|
||||||
}
|
}
|
||||||
|
|
||||||
return payloadOnlyObject(payload[from:to]), nil
|
return payloadOnlyObject(payload[from:to]), nil
|
||||||
|
|
|
@ -330,7 +330,8 @@ const maxInitialBufferSize = 1024 * 1024 // 1 MiB
|
||||||
// Returns:
|
// Returns:
|
||||||
//
|
//
|
||||||
// error of type *object.SplitInfoError if object raw flag is set and requested object is virtual;
|
// error of type *object.SplitInfoError if object raw flag is set and requested object is virtual;
|
||||||
// error of type *apistatus.ObjectAlreadyRemoved if the requested object is marked to be removed.
|
// error of type *apistatus.ObjectAlreadyRemoved if the requested object is marked to be removed;
|
||||||
|
// error of type *apistatus.ObjectOutOfRange if the requested range is too big.
|
||||||
//
|
//
|
||||||
// PayloadRange ignores the provided session if it is not related to the requested object.
|
// PayloadRange ignores the provided session if it is not related to the requested object.
|
||||||
func PayloadRange(prm PayloadRangePrm) (*PayloadRangeRes, error) {
|
func PayloadRange(prm PayloadRangePrm) (*PayloadRangeRes, error) {
|
||||||
|
@ -359,7 +360,7 @@ func PayloadRange(prm PayloadRangePrm) (*PayloadRangeRes, error) {
|
||||||
// `CopyN` expects `int64`, this check ensures that the result is positive.
|
// `CopyN` expects `int64`, this check ensures that the result is positive.
|
||||||
// On practice this means that we can return incorrect results for objects
|
// On practice this means that we can return incorrect results for objects
|
||||||
// with size > 8_388 Petabytes, this will be fixed later with support for streaming.
|
// with size > 8_388 Petabytes, this will be fixed later with support for streaming.
|
||||||
return nil, apistatus.ObjectOutOfRange{}
|
return nil, new(apistatus.ObjectOutOfRange)
|
||||||
}
|
}
|
||||||
|
|
||||||
ln := prm.ln
|
ln := prm.ln
|
||||||
|
|
Loading…
Reference in a new issue