[ https://issues.apache.org/jira/browse/CASSANDRA-10073?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14698744#comment-14698744 ]
Sylvain Lebresne commented on CASSANDRA-10073: ---------------------------------------------- Pushed branch with the fixes [here|https://github.com/pcmanus/cassandra/commits/10073] (I'll update with links to CI results once/if the branch is picked up by cassci). The reason for the exception is that {{CollectionType.validateCellValue}} is not calling the proper validation method for it's values (it should call their {{validateCellValue}}). This is not a particularly new bug, but the only types for which {{validate}} and {{validateCellValue}} differs are collections (but we don't support nested collections) and counters (for which, prior to CASSANDRA-8099 were never part of collections -- they can be now if counters are used in thrift super columns). The first commit fixes that. Once that was fixed, the test was still failing due to some pretty clear typo in {{ColumnSubselection}} serialization code, so a 2nd commit fixes that too. > Counter mutation serialization bug > ---------------------------------- > > Key: CASSANDRA-10073 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10073 > Project: Cassandra > Issue Type: Bug > Reporter: T Jake Luciani > Assignee: Sylvain Lebresne > Priority: Critical > Fix For: 3.0 beta 1 > > > reproduced in dtest > super_counter_test:TestSuperCounterClusterRestart.functional_test_2 > {code} > - Unexpected error deserializing mutation; saved to > /tmp/mutation181379301016027337dat and ignored. This may be caused by > replaying a mutation against a table with the same name but incompatible > schema. Exception follows: > org.apache.cassandra.serializers.MarshalException: Expected 8 or 0 byte long > (36) \tat > org.apache.cassandra.serializers.LongSerializer.validate(LongSerializer.java:42) > ~[main/:na] \tat > org.apache.cassandra.db.marshal.AbstractType.validate(AbstractType.java:122) > ~[main/:na] \tat > org.apache.cassandra.db.marshal.CollectionType.validateCellValue(CollectionType.java:130) > ~[main/:na] \tat > org.apache.cassandra.config.ColumnDefinition.validateCellValue(ColumnDefinition.java:444) > ~[main/:na] \tat > org.apache.cassandra.db.rows.AbstractCell.validate(AbstractCell.java:56) > ~[main/:na] \tat > org.apache.cassandra.db.rows.ComplexColumnData.validate(ComplexColumnData.java:125) > ~[main/:na] \tat > org.apache.cassandra.db.partitions.PartitionUpdate.validate(PartitionUpdate.java:518) > ~[main/:na] \tat > org.apache.cassandra.db.commitlog.CommitLogReplayer.replayMutation(CommitLogReplayer.java:485) > [main/:na] \tat > org.apache.cassandra.db.commitlog.CommitLogReplayer.replaySyncSection(CommitLogReplayer.java:465) > [main/:na] \tat > org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:371) > [main/:na] \tat > org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:146) > [main/:na] \tat > org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:181) > [main/:na] \tat > org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:161) > [main/:na] \tat > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:272) > [main/:na] \tat > org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:512) > [main/:na] \tat > org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:618) > [main/:na] ERROR [main] 2015-08-12 17:36:38,247 CommitLogReplayer.java:513 > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)