Commit 8fe6fb7
committed
fix: Flush ADBC sink before resuming ETL after checkpoint pause
When the ETL pipeline pauses at a checkpoint boundary for validation,
the reusable ADBC bulk ingest streams (long-lived DoPut connections)
sit idle for the duration of the validation window (often 10+ minutes).
These connections can go stale or be closed by the server during this
period.
When the pipeline resumes via continue_pipeline(), it reuses the same
AdbcSink with its stale streams. The next write attempt hangs
indefinitely on the dead connection, causing the ETL to stall at
step 0/9 with zero progress.
Fix: call data_sink.flush() in continue_pipeline() before spawning the
new run task. This closes all reusable bulk ingest streams so they are
recreated fresh when the first write of the new phase arrives.
This requires making continue_pipeline() async since flush() is async.1 parent 7d1f49a commit 8fe6fb7
4 files changed
Lines changed: 12 additions & 6 deletions
File tree
- .github/workflows
- crates/etl/src
- src/commands
- load
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
177 | 177 | | |
178 | 178 | | |
179 | 179 | | |
| 180 | + | |
180 | 181 | | |
181 | 182 | | |
182 | 183 | | |
| |||
225 | 226 | | |
226 | 227 | | |
227 | 228 | | |
| 229 | + | |
228 | 230 | | |
229 | 231 | | |
230 | 232 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1457 | 1457 | | |
1458 | 1458 | | |
1459 | 1459 | | |
1460 | | - | |
| 1460 | + | |
1461 | 1461 | | |
1462 | 1462 | | |
1463 | 1463 | | |
| |||
1476 | 1476 | | |
1477 | 1477 | | |
1478 | 1478 | | |
| 1479 | + | |
| 1480 | + | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
1479 | 1485 | | |
1480 | 1486 | | |
1481 | 1487 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
282 | 282 | | |
283 | 283 | | |
284 | 284 | | |
285 | | - | |
| 285 | + | |
286 | 286 | | |
287 | 287 | | |
288 | 288 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
656 | 656 | | |
657 | 657 | | |
658 | 658 | | |
659 | | - | |
660 | | - | |
661 | | - | |
| 659 | + | |
662 | 660 | | |
663 | 661 | | |
664 | 662 | | |
| |||
1007 | 1005 | | |
1008 | 1006 | | |
1009 | 1007 | | |
1010 | | - | |
| 1008 | + | |
1011 | 1009 | | |
1012 | 1010 | | |
1013 | 1011 | | |
| |||
0 commit comments