[ https://issues.apache.org/jira/browse/CASSANDRA-4307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13289494#comment-13289494 ]
Jonathan Ellis commented on CASSANDRA-4307: ------------------------------------------- +1 > isMarkedForDelete can return false if it is a few seconds in the future > ----------------------------------------------------------------------- > > Key: CASSANDRA-4307 > URL: https://issues.apache.org/jira/browse/CASSANDRA-4307 > Project: Cassandra > Issue Type: Bug > Components: Core > Affects Versions: 1.1.0 > Reporter: Wade Simmons > Assignee: Sylvain Lebresne > Fix For: 1.1.2 > > Attachments: 4307.txt > > > The patch in CASSANDRA-3716 causes some weird issues to arrise when server > times don't exactly match up (and since the resolution is seconds, it is easy > to be off by just enough to see it). > I am seeing a case where during schema propagation .isMarkedForDelete() is > checked, but the timestamp is a few seconds in the future because the schema > was sent from a different node. The code then happily tries to interpret the > value of the column as a String, but it is actually the Int encoded deletion > time. > Here is an example in the code that does this check and will do the wrong > thing if the deletion timestamp is even just a few seconds in the future: > https://github.com/apache/cassandra/blob/47f0cc5d38d272ec9f7d6179eb3ffa28c6f74107/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java#L607-609 > To prove that this is a problem, here is a stack trace of a machine trying to > interpret the "localDeletionTime" value of a DeletedColumn as UTF-8 because > the .isMarkedForDeletion() check failed: > https://gist.github.com/deb064d4377d206368d3 -- 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