[
https://issues.apache.org/jira/browse/CASSANDRA-12436?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15417495#comment-15417495
]
Branimir Lambov commented on CASSANDRA-12436:
---------------------------------------------
The dirty set is a single interval, so that it can be easily updated on
allocation (from performance point of view it is infeasible to track the dirty
positions more closely). If there is a write after the empty memtable's flush,
the dirty interval will also cover the commit log positions between the
creation of that memtable and its flushing, which will have advanced if writes
to other tables happened during that period.
The comment is actually accurate, we do remove the tables from the CFS's live
list. We no longer remove them from the set to flush + post-flush.
> Under some races commit log may incorrectly think it has unflushed data
> -----------------------------------------------------------------------
>
> Key: CASSANDRA-12436
> URL: https://issues.apache.org/jira/browse/CASSANDRA-12436
> Project: Cassandra
> Issue Type: Bug
> Reporter: Branimir Lambov
> Assignee: Branimir Lambov
> Fix For: 3.0.9, 3.9
>
>
> This can mainfest itself as a "Failed to force-recycle all segments; at least
> one segment is still in use with dirty CFs." message after CASSANDRA-11828.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)