diff --git a/holder.go b/holder.go index ef313136d..4d451c7ee 100644 --- a/holder.go +++ b/holder.go @@ -344,13 +344,15 @@ func (h *Holder) processDeleteInflight() error { g.Go(func() error { for shard := range ch { if err := h.deletePerShard(index, shard); err != nil { - return err + return fmt.Errorf("delete shard %d: %w", shard, err) } } return nil }) } - g.Wait() + if err := g.Wait(); err != nil { + return err + } } } return nil diff --git a/holder_internal_test.go b/holder_internal_test.go index 20535c9f9..fc8ca98ea 100644 --- a/holder_internal_test.go +++ b/holder_internal_test.go @@ -94,21 +94,24 @@ func TestHolder_ProcessDeleteInflight(t *testing.T) { } for _, test := range tests { - idx, f := test.idx, test.f - tx := idx.Txf().NewTx(Txo{Write: false, Index: idx1, Shard: uint64(0)}) - defer tx.Rollback() - for _, r := range rowCol { - row, err := f.Row(tx, r.row) - if err != nil { - t.Fatalf("failed to get row: %v", err) + func() { + idx, f := test.idx, test.f + tx := idx.Txf().NewTx(Txo{Write: false, Index: idx1, Shard: uint64(0)}) + defer tx.Rollback() + for _, r := range rowCol { + row, err := f.Row(tx, r.row) + if err != nil { + t.Fatalf("failed to get row: %v", err) + } + existenceRow, err := idx.existenceFld.Row(tx, r.row) + if err != nil { + t.Fatalf("failed to get row: %v", err) + } + if len(row.Columns()) != 0 || len(existenceRow.Columns()) != 0 { + t.Fatalf("expected columns for fields to be empty after delete") + } } - existenceRow, err := idx.existenceFld.Row(tx, r.row) - if err != nil { - t.Fatalf("failed to get row: %v", err) - } - if len(row.Columns()) != 0 || len(existenceRow.Columns()) != 0 { - t.Fatalf("expected columns for fields to be empty after delete") - } - } + }() + } }