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]

Reply via email to