Commit e2b4437
### Rationale for this change
If the `initial_task` passed to `AsyncTaskScheduler::Make` throws a C++ exception (rather than returning a failed `Status`), `OnTaskFinished` is never called. This leaves `running_tasks_` permanently at 1, causing a `DCHECK` failure in debug builds and an indefinite hang in release builds because the scheduler's `finished` future is never completed. In Acero, this manifests as `DeclarationToTable` (and similar APIs) hanging forever when a `SourceNode` generator throws during `StartProducing`.
### What changes are included in this PR?
Add exception handling logic.
### Are these changes tested?
Yes.
### Are there any user-facing changes?
No API changes.
* GitHub Issue: #47642
Lead-authored-by: egolearner <lijiliang@outlook.com>
Co-authored-by: Antoine Pitrou <pitrou@free.fr>
Signed-off-by: Antoine Pitrou <antoine@python.org>
1 parent 35eed28 commit e2b4437
2 files changed
Lines changed: 41 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
466 | 467 | | |
467 | 468 | | |
468 | 469 | | |
469 | | - | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
470 | 483 | | |
471 | 484 | | |
472 | 485 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| 30 | + | |
29 | 31 | | |
30 | 32 | | |
31 | 33 | | |
| |||
204 | 206 | | |
205 | 207 | | |
206 | 208 | | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
207 | 234 | | |
208 | 235 | | |
209 | 236 | | |
| |||
0 commit comments