From 80481c015c236fac0dfb7a600952291f92738858 Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Tue, 11 Jul 2023 17:33:13 +0300 Subject: [PATCH] [#509] putsvc: Omit AccessIdentifiers from iteratePlacement() Signed-off-by: Evgenii Stratonikov --- pkg/services/object/put/distributed.go | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/pkg/services/object/put/distributed.go b/pkg/services/object/put/distributed.go index 51678fa7..c8294c0b 100644 --- a/pkg/services/object/put/distributed.go +++ b/pkg/services/object/put/distributed.go @@ -146,7 +146,14 @@ func (t *distributedTarget) Close(ctx context.Context) (*transformer.AccessIdent t.traversal.extraBroadcastEnabled = true } - return t.iteratePlacement(ctx) + if err := t.iteratePlacement(ctx); err != nil { + return nil, err + } + + id, _ := t.obj.ID() + return &transformer.AccessIdentifiers{ + SelfID: id, + }, nil } func (t *distributedTarget) sendObject(ctx context.Context, node nodeDesc) error { @@ -164,14 +171,14 @@ func (t *distributedTarget) sendObject(ctx context.Context, node nodeDesc) error return nil } -func (t *distributedTarget) iteratePlacement(ctx context.Context) (*transformer.AccessIdentifiers, error) { +func (t *distributedTarget) iteratePlacement(ctx context.Context) error { id, _ := t.obj.ID() traverser, err := placement.NewTraverser( append(t.traversal.opts, placement.ForObject(id))..., ) if err != nil { - return nil, fmt.Errorf("(%T) could not create object placement traverser: %w", t, err) + return fmt.Errorf("(%T) could not create object placement traverser: %w", t, err) } resErr := &atomic.Value{} @@ -190,23 +197,19 @@ func (t *distributedTarget) iteratePlacement(ctx context.Context) (*transformer. if !traverser.Success() { var err errIncompletePut err.singleErr, _ = resErr.Load().(error) - return nil, err + return err } // perform additional container broadcast if needed if t.traversal.submitPrimaryPlacementFinish() { - _, err = t.iteratePlacement(ctx) + err = t.iteratePlacement(ctx) if err != nil { t.log.Error(logs.PutAdditionalContainerBroadcastFailure, zap.Error(err)) // we don't fail primary operation because of broadcast failure } } - id, _ = t.obj.ID() - - return &transformer.AccessIdentifiers{ - SelfID: id, - }, nil + return nil } func (t *distributedTarget) iterateAddresses(ctx context.Context, traverser *placement.Traverser, addrs []placement.Node, resErr *atomic.Value) bool {