[
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: [email protected]
For additional commands, e-mail: [email protected]