You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Yifan Cai (Jira)" <ji...@apache.org> on 2020/05/09 23:45:00 UTC

[jira] [Updated] (CASSANDRA-15800) BinLog deadlock on stopping when the sample queue is full

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

Yifan Cai updated CASSANDRA-15800:
----------------------------------
     Bug Category: Parent values: Degradation(12984)Level 1 values: Resource Management(12995)
       Complexity: Normal
    Discovered By: Code Inspection
         Severity: Normal

> 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: Observability/Logging
>            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-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org