[
https://issues.apache.org/jira/browse/CASSANDRA-2349?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sylvain Lebresne updated CASSANDRA-2349:
----------------------------------------
Attachment: 0001-Don-t-transform-expired-tombstone-in-LazilyCompacted.patch
Attaching simpler solution consisting in not transforming expired columns into
tombstones, so that the second phase of LazilyCompactedRow sees the same
columns than the first phase.
I would be happy to come up with a unit test for this, but this is a subtle
race condition and I'm really not sure how to write a test that capture it.
> Expring columns can expire between the two phase of LazilyCompactedRow.
> -----------------------------------------------------------------------
>
> Key: CASSANDRA-2349
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2349
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 0.7.0
> Reporter: Sylvain Lebresne
> Assignee: Sylvain Lebresne
> Priority: Critical
> Fix For: 0.7.5
>
> Attachments:
> 0001-Don-t-transform-expired-tombstone-in-LazilyCompacted.patch
>
> Original Estimate: 8h
> Remaining Estimate: 8h
>
> LazilyCompactedRow reads the columns to compact twice. First to create the
> index, bloom filter and calculate the data size, and then another phase to
> actually write the columns. But a column can expire between those two phase,
> which will result in a bad data size in the sstable (and a possibly corrupted
> row index).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira