erratic-pattern opened a new issue, #19358: URL: https://github.com/apache/datafusion/issues/19358
## Describe the bug Join operators (HashJoinExec, SortMergeJoinExec, CrossJoinExec, NestedLoopJoinExec) don't yield to the tokio runtime during execution, which prevents query cancellation from working. When a long-running join query is aborted, the cancellation is never processed because the operator never yields control back to tokio. ## To Reproduce Reproducer project: https://github.com/erratic-pattern/datafusion-join-cancellation-repro ## Expected behavior Join operators should periodically yield to the tokio runtime so that task cancellation requests are processed promptly and to avoid worker starvation for other tasks. ## Additional context A simple fix would be to wrap join streams with `make_cooperative()` in each operator's `execute()` method. **PR Status**: I have a fix ready and will submit a PR shortly. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
