diff --git a/pkg/services/object/get/assemble.go b/pkg/services/object/get/assemble.go index bcbd581c..7f8aade2 100644 --- a/pkg/services/object/get/assemble.go +++ b/pkg/services/object/get/assemble.go @@ -12,7 +12,11 @@ func (exec *execCtx) assemble() { return } - exec.assembling = true + // do not use forwarding during assembly stage + // assembly flag is not inherited in produced + // `execCtx`, however `commonPrm` does, so it + // makes sense to nil it there + exec.prm.SetRequestForwarder(nil) exec.log.Debug("trying to assemble the object...") diff --git a/pkg/services/object/get/exec.go b/pkg/services/object/get/exec.go index d92a29d2..58ac46e7 100644 --- a/pkg/services/object/get/exec.go +++ b/pkg/services/object/get/exec.go @@ -41,12 +41,6 @@ type execCtx struct { head bool curProcEpoch uint64 - - // true when the processing of the initial request - // is turned to assembling stage. When false, - // initial request can be forwarded during network - // communication. - assembling bool } type execOption func(*execCtx) diff --git a/pkg/services/object/get/util.go b/pkg/services/object/get/util.go index 90ea40a5..7a1ff0cb 100644 --- a/pkg/services/object/get/util.go +++ b/pkg/services/object/get/util.go @@ -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) }