You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Michael Semb Wever (Jira)" <ji...@apache.org> on 2026/08/21 17:08:00 UTC
[jira] [Commented] (CASSANDRA-21593) CEP-45: Fix OpOrder.Group leak in ReadExecutionController.forCommand()
[ https://issues.apache.org/jira/browse/CASSANDRA-21593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18106703#comment-18106703 ]
Michael Semb Wever commented on CASSANDRA-21593:
------------------------------------------------
+1
> CEP-45: Fix OpOrder.Group leak in ReadExecutionController.forCommand()
> ----------------------------------------------------------------------
>
> Key: CASSANDRA-21593
> URL: https://issues.apache.org/jira/browse/CASSANDRA-21593
> Project: Apache Cassandra
> Issue Type: Bug
> Components: Legacy/Core
> Reporter: Francisco Guerrero
> Assignee: Francisco Guerrero
> Priority: Normal
>
> When repaired-data tracking is enabled for partition reads and a read against a tracked table went through read-repair's digest-mismatch path, the {{ReadExecutionController}}'s constructor is throwing an {{IllegalArgumentException}}. In {{org.apache.cassandra.db.ReadExecutionController#forCommand}} we are starting the {{OpOrder.Group}}, without a try/catch/finally guard. When the exception is thrown, we are leaking {{OpOrder.Group}}. We are also not closing the {{OpOrder.Group}} for the index case in the {{indexCfs}}. A leaked Group never reaches the {{FINISHED}} state and then hanging {{OpOrder.Barrier.await()}} for every later barrier on that {{readOrdering}} and eventually blocking writes with no {{ERROR}} logged.
> The proposed fix focuses on two parts:
> 1. Excluded tracked tables when starting a repair in {{AbstractReadRepair.startRepair()}}. This is what triggers this issue.
> 2. Better handling of exceptions during {{ReadExecutionController.forCommand()}}, ensuring that the critical paths are in the try/catch block and properly handling closing the objects that exist.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org