diff --git a/pkg/services/policer/check.go b/pkg/services/policer/check.go index ca75e7cdf..29b6e4c2c 100644 --- a/pkg/services/policer/check.go +++ b/pkg/services/policer/check.go @@ -118,7 +118,7 @@ func (p *Policer) processNodes(ctx context.Context, addr *object.Address, nodes zap.Uint32("shortage", shortage), ) - p.replicator.AddTask(new(replicator.Task). + p.replicator.HandleTask(ctx, new(replicator.Task). WithObjectAddress(addr). WithNodes(nodes). WithCopiesNumber(shortage), diff --git a/pkg/services/replicator/process.go b/pkg/services/replicator/process.go index fae8fea1c..825e83b19 100644 --- a/pkg/services/replicator/process.go +++ b/pkg/services/replicator/process.go @@ -37,12 +37,13 @@ func (p *Replicator) Run(ctx context.Context) { return } - p.handleTask(ctx, task) + p.HandleTask(ctx, task) } } } -func (p *Replicator) handleTask(ctx context.Context, task *Task) { +// HandleTask executes replication task inside invoking goroutine. +func (p *Replicator) HandleTask(ctx context.Context, task *Task) { defer func() { p.log.Info("finish work", zap.Uint32("amount of unfinished replicas", task.quantity),