Skip to content

Commit 8027e62

Browse files
authored
fix: Don't write last batch in managed writer if the context was canceled (#964)
1 parent cc1260a commit 8027e62

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

plugins/destination/managed_writer.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,24 +35,27 @@ func (p *Plugin) worker(ctx context.Context, metrics *Metrics, table *schema.Tab
3535
}
3636
if len(resources) == p.spec.BatchSize || sizeBytes+util.TotalRecordSize(r) > int64(p.spec.BatchSizeBytes) {
3737
p.flush(ctx, metrics, table, resources)
38-
resources = make([]arrow.Record, 0)
38+
resources = resources[:0] // allows for mem reuse
3939
sizeBytes = 0
4040
}
4141
resources = append(resources, r)
4242
sizeBytes += util.TotalRecordSize(r)
4343
case <-time.After(p.batchTimeout):
4444
if len(resources) > 0 {
4545
p.flush(ctx, metrics, table, resources)
46-
resources = make([]arrow.Record, 0)
46+
resources = resources[:0] // allows for mem reuse
4747
sizeBytes = 0
4848
}
4949
case done := <-flush:
5050
if len(resources) > 0 {
5151
p.flush(ctx, metrics, table, resources)
52-
resources = make([]arrow.Record, 0)
52+
resources = resources[:0] // allows for mem reuse
5353
sizeBytes = 0
5454
}
5555
done <- true
56+
case <-ctx.Done():
57+
// this means the request was cancelled
58+
return // after this NO other call will succeed
5659
}
5760
}
5861
}

0 commit comments

Comments
 (0)