[#839] service/object: Do not use request forwarding when assembling object

Forwarding mechanism resends original request. During split object chain traversal,
storage node performs multiple `object.Head` requests on each child. If request
forwarding happens, then `object.Head` returns object ID of the original request.
This produces infinite assembly loop.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
Alex Vanin 2021-09-22 17:04:45 +03:00 committed by Alex Vanin
parent 057d3ac06b
commit b3464e8140
3 changed files with 6 additions and 8 deletions

View file

@ -82,7 +82,7 @@ func (c *clientCacheWrapper) get(addr network.AddressGroup) (getClient, error) {
}
func (c *clientWrapper) getObject(exec *execCtx, addr network.AddressGroup) (*objectSDK.Object, error) {
if !exec.assembling && exec.prm.forwarder != nil {
if exec.prm.forwarder != nil {
return exec.prm.forwarder(addr, c.client)
}