Andrew Lamb created ARROW-11802:
-----------------------------------

             Summary: [Rust][DataFusion] Mixing of crossbeam channel and async 
tasks can lead to deadlock
                 Key: ARROW-11802
                 URL: https://issues.apache.org/jira/browse/ARROW-11802
             Project: Apache Arrow
          Issue Type: Bug
          Components: Rust - DataFusion
            Reporter: Andrew Lamb


[~edrevo] noticed, on 
https://github.com/apache/arrow/pull/9523#issuecomment-786237494, that the use 
of crossbeam channels can potentially deadlock datafusion

The use of crossbeam channel is left over from earlier, non `async` 
implementations and get been fingered in some hangs that [~MikeSeddonAU] has 
observed in DataFusion ). Specifically the crossbeam channel can block a thread 
when the channel is full or empty, which can result in blocking all the tokio 
executor threads and deadlocking the system

The proposal is is to use tokio's mpsc channels instead of crossbeam which can 
properly yield back to tokio to run another task when the channel is either 
full or empty. .




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to