[
https://issues.apache.org/jira/browse/CASSANDRA-15761?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alex Petrov updated CASSANDRA-15761:
------------------------------------
Bug Category: Parent values: Correctness(12982)Level 1 values: Recoverable
Corruption / Loss(12986)
Complexity: Normal
Component/s: (was: Feature/2i Index)
Feature/SASI
Discovered By: Unit Test
Severity: Critical
Status: Open (was: Triage Needed)
> Make SASI query safe for concurrent compaction
> ----------------------------------------------
>
> Key: CASSANDRA-15761
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15761
> Project: Cassandra
> Issue Type: Bug
> Components: Feature/SASI
> Reporter: ZhaoYang
> Priority: Normal
> Fix For: 3.11.x, 4.x
>
>
> Read Request Thread:
> 1.) In {{QueryController#getIndexes}}, read request gets the current {{view}}
> of sstable indexes.
> 2.) Request will try to reference the {{SSTableIndex}} from the {{view}} in
> {{TermIterator#build}} and skips the {{SSTableIndex}} if it cannot be
> referenced.
> Compaction Thread:
> If a compaction finishes between 1) and 2) and no other in-flight queries are
> holding the sstable index reference, compacted {{SSTableIndex}} will be
> released.
> Then in step 2, read request will not be able to reference the released
> {{SSTableIndex}}. We won't see a corruption error, but we'll silently not
> read all data.
>
> ----
>
> Proposed fix: Read Request should make sure all {{SSTableIndexes}} from the
> {{View}} can be referenced; if not, it should retry with latest {{View}}.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]