Cleanup can create sstables whose contents do not match their advertised version
--------------------------------------------------------------------------------

                 Key: CASSANDRA-2211
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2211
             Project: Cassandra
          Issue Type: Bug
            Reporter: Jonathan Ellis
            Assignee: Jonathan Ellis


{code}
                    if (Range.isTokenInRanges(row.getKey().token, ranges))
                    {
                        writer = maybeCreateWriter(sstable, 
compactionFileLocation, expectedBloomFilterSize, writer);
                        writer.append(new EchoedRow(row));
                        totalkeysWritten++;
                    }
                    else
                    {
                        while (row.hasNext())
                        {
                            IColumn column = row.next();
                            if (indexedColumns.contains(column.name()))
                                Table.cleanupIndexEntry(cfs, row.getKey().key, 
column);
                        }
                    }
{code}

... that is, rows that haven't changed we copy to the new sstable without 
deserializing.  But, the new sstable is created with CURRENT_VERSION which may 
not be what the old data consisted of.

(This could cause symptoms similar to CASSANDRA-2195 but I do not think it is 
the cause of that bug; IIRC the cluster in question there was not upgraded from 
an older Cassandra.)

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to