[ 
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)

Reply via email to