pepijnve commented on issue #23447:
URL: https://github.com/apache/datafusion/issues/23447#issuecomment-4940463355

   The physical query plan is
   
   ```
   AgregateExec: mode=FinalPartitioned, gby=[dst@0 as dst], 
aggr=[sum(?table?.value)]
     RepartitionExec: partitioning=Hash([dst@0], 8), input_partitions=8
       AggregateExec: mode=Partial, gby=[dst@0 as dst], 
aggr=[sum(?table?.value)]
         ProjectionExec: expr=[dst@3 as dst, value@1 as value]
           SortMergeJoinExec: join_type=Inner, on=[(id@0, src@0)]
             SortExec: expr=[id@0 ASC], preserve_partitioning=[true]
               RepartitionExec: partitioning=Hash([id@0], 8), input_partitions=8
                 DataSourceExec: file_groups=...
             SortExec: expr=[src@0 ASC], preserve_partitioning=[true]
               RepartitionExec: partitioning=Hash([src@0], 8), 
input_partitions=8
                 DataSourceExec: file_groups=...
   ```
   
   tracing the recordbatch streams I can see that all 8 partitions up to the 
`ProjectionExec` run until they produce `None` so the problem doesn't seem to 
be situated in the sort merge join. When things get stuck, what I'm seeing is 
that the `Repartition` streams are returning `Pending`, the final `Aggregate` 
returns `Pending` as well, and then everything stops. Is there a code path 
where a waker is not being registered when returning `Pending`?


-- 
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