[ https://issues.apache.org/jira/browse/CASSANDRA-3872?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sylvain Lebresne updated CASSANDRA-3872: ---------------------------------------- Attachment: 3872.patch Attaching patch for this. The idea is to make containers use MAX_VALUE instead of MIN_VALUE for localDeleteionTime. There is however two things to consider: # for containers, we do serialize the localDeletionTime, so we have to be careful for upgrade (mixed version cluster). What the patch does is to recognize when someone provided MIN_VALUE and transforming to MAX_VALUE. This only work when old node send use MIN_VALUE, however *I think* it is actually OK to send MAX_VALUE to old node (pre-1.1 code uses markedForDeleteAt to decide if a container is deleted, not localDeletionTime, so we shouldn't break anything). # CFS.removeDeleted has to be able to distinguish between an empty container that is marked for deletion (but not gcable) and one that is not marked for deletion. In the former, we should keep the container, not in the latter. This means that this patch actually reintroduce the use of isMarkedForDelete() for containers in CFS.removeDeleted (for containers, isMarkedForDelete is not timing dependent). Note that there would likely be other ways to fix this issue (reverting CASSANDRA-3716 would be one). In any case, the patch fixes the two unit tests. > Sub-columns removal is broken in 1.1 > ------------------------------------ > > Key: CASSANDRA-3872 > URL: https://issues.apache.org/jira/browse/CASSANDRA-3872 > Project: Cassandra > Issue Type: Bug > Affects Versions: 1.1 > Reporter: Sylvain Lebresne > Assignee: Sylvain Lebresne > Fix For: 1.1 > > Attachments: 3872.patch > > > CASSANDRA-3716 actually broke sub-columns deletion. The reason is that in > QueryFilter.isRelevant, we've switched in checking getLocalDeletionTime() > only (without looking for isMarkedForDelete). But for columns containers (in > this case SuperColumn), the default local deletion time when not deleted is > Integer.MIN_VALUE. In other words, a SC with only non-gcable tombstones will > be considered as not relevant (while it should). > This is caught by two unit tests (RemoveSuperColumnTest and > RemoveSubColumnTest) that are failing currently. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira