Repository navigation
Commit f12422e
fix(client): clean up parallel table-function scans closed early
_table_function_parallel reads each worker's producer stream on a reader
thread. Closing the generator before the scan finished left those threads
reading and the streams open; the Client.stop() that followed drained the
same stream from the main thread. Two readers on one pipe hung about one
run in five, and a pooled worker abandoned mid-stream corrupted the next
call on it (TransportError reading `bind`).
The generator body now runs in try/finally. On an early exit (generator
closed, or a worker failed) it sets a stop event; each reader notices it
within one batch (producer streams advance one tick per batch) and cancels
its stream from its own thread, so the stream never has two readers. The
threads are joined, then streams and secondary workers released as on
normal completion. A reader still alive after the join timeout gets its
worker killed rather than a second reader on the pipe.
Found by vgi-polars (scans cut short by .head() across splits).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>1 parent d074c60 commit f12422e
2 files changed
Lines changed: 147 additions & 36 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3273 | 3273 | | |
3274 | 3274 | | |
3275 | 3275 | | |
| 3276 | + | |
| 3277 | + | |
| 3278 | + | |
| 3279 | + | |
| 3280 | + | |
| 3281 | + | |
| 3282 | + | |
3276 | 3283 | | |
3277 | 3284 | | |
3278 | 3285 | | |
3279 | 3286 | | |
3280 | | - | |
| 3287 | + | |
| 3288 | + | |
3281 | 3289 | | |
3282 | 3290 | | |
3283 | 3291 | | |
3284 | | - | |
| 3292 | + | |
3285 | 3293 | | |
3286 | 3294 | | |
3287 | 3295 | | |
3288 | 3296 | | |
3289 | 3297 | | |
3290 | 3298 | | |
3291 | 3299 | | |
| 3300 | + | |
| 3301 | + | |
| 3302 | + | |
| 3303 | + | |
3292 | 3304 | | |
3293 | 3305 | | |
3294 | 3306 | | |
| |||
3308 | 3320 | | |
3309 | 3321 | | |
3310 | 3322 | | |
3311 | | - | |
3312 | | - | |
3313 | | - | |
3314 | | - | |
3315 | | - | |
3316 | | - | |
3317 | | - | |
3318 | | - | |
3319 | | - | |
3320 | | - | |
3321 | | - | |
3322 | | - | |
3323 | | - | |
3324 | | - | |
3325 | | - | |
3326 | | - | |
3327 | | - | |
3328 | | - | |
3329 | | - | |
3330 | | - | |
3331 | | - | |
3332 | | - | |
3333 | | - | |
3334 | | - | |
3335 | | - | |
3336 | | - | |
3337 | | - | |
| 3323 | + | |
| 3324 | + | |
| 3325 | + | |
| 3326 | + | |
| 3327 | + | |
| 3328 | + | |
| 3329 | + | |
| 3330 | + | |
| 3331 | + | |
| 3332 | + | |
| 3333 | + | |
| 3334 | + | |
| 3335 | + | |
| 3336 | + | |
| 3337 | + | |
| 3338 | + | |
| 3339 | + | |
| 3340 | + | |
| 3341 | + | |
| 3342 | + | |
| 3343 | + | |
| 3344 | + | |
| 3345 | + | |
| 3346 | + | |
| 3347 | + | |
3338 | 3348 | | |
3339 | | - | |
3340 | | - | |
3341 | | - | |
3342 | | - | |
3343 | | - | |
3344 | | - | |
3345 | | - | |
| 3349 | + | |
| 3350 | + | |
| 3351 | + | |
| 3352 | + | |
| 3353 | + | |
| 3354 | + | |
| 3355 | + | |
| 3356 | + | |
| 3357 | + | |
| 3358 | + | |
| 3359 | + | |
| 3360 | + | |
| 3361 | + | |
| 3362 | + | |
| 3363 | + | |
| 3364 | + | |
| 3365 | + | |
| 3366 | + | |
| 3367 | + | |
| 3368 | + | |
| 3369 | + | |
| 3370 | + | |
| 3371 | + | |
| 3372 | + | |
| 3373 | + | |
| 3374 | + | |
| 3375 | + | |
3346 | 3376 | | |
3347 | 3377 | | |
3348 | 3378 | | |
| |||
0 commit comments