[ 
https://issues.apache.org/jira/browse/CASSANDRA-15800?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yifan Cai updated CASSANDRA-15800:
----------------------------------
    Component/s: Tool/fql
                 Legacy/Tools

> BinLog deadlock on stopping when the sample queue is full
> ---------------------------------------------------------
>
>                 Key: CASSANDRA-15800
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15800
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Legacy/Tools, Observability/Logging, Tool/fql
>            Reporter: Yifan Cai
>            Assignee: Yifan Cai
>            Priority: Normal
>
> A deadlock can happen when 1) the BinLog is being stoped and 2) the BinLog's 
> internal sample queue is full. 
> When stopping, BinLog first set the flag shouldContinue to false, so that the 
> internal consumer thread stop consuming. It is possible to leave the queue 
> being full.
> Then, the BinLog puts one extra object NO_OP into the sample queue. However, 
> the queue is already full, so the put operation blocks, and the stop method 
> never returns. 
> Therefore, we got a deadlock.
> BinLog is used by Cassandra 40 new features such as audit logging and full 
> query logging. 
> If such deadlock happens, the thread cannot be not joined and the referenced 
> items in the queue are never released, hence memory leak.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to