[ 
https://issues.apache.org/jira/browse/CASSANDRA-6707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13902812#comment-13902812
 ] 

Benedict commented on CASSANDRA-6707:
-------------------------------------

{quote}
-        public RowMutation deserialize(DataInput in, int version, 
ColumnSerializer.Flag flag) throws IOException
-        {
-            String keyspaceName = null; // will always be set from cf.metadata 
but javac isn't smart enough to see that
-            if (version < MessagingService.VERSION_20)
-                keyspaceName = in.readUTF();
-
-            ByteBuffer key = ByteBufferUtil.readWithShortLength(in);
-            int size = in.readInt();
-            assert size > 0;
{quote}

{quote}
-                    checksum.update(serializedSize);
+                    if (version < CommitLogDescriptor.VERSION_20)
+                        checksum.update(serializedSize);
+                    else
+                        FBUtilities.updateChecksumInt(checksum, 
serializedSize);
+
{quote}

Not sure why we go to such lengths to make sure we can do it elsewhere then? It 
seems like all the related code thinks it can replay these version changes...

> AIOOBE when doing select count(*) from on a mixed cluster.
> ----------------------------------------------------------
>
>                 Key: CASSANDRA-6707
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6707
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>         Environment: old nodes: Cassandra 1.2.16 from DSE 3.2.5  (unreleased)
> new node: Cassandra  2.0.5 from DSE 4.0.0 (unreleased)
>            Reporter: Piotr Kołaczkowski
>            Assignee: Tyler Hobbs
>            Priority: Critical
>         Attachments: 6707.patch
>
>
> After upgrading one node from 1.2 to 2.0, the following query fails with 
> timeout:
> {noformat}
> Connected to test at localhost:9160.
> [cqlsh 4.1.0 | Cassandra 2.0.5.1-SNAPSHOT | CQL spec 3.1.1 | Thrift protocol 
> 19.39.0]
> Use HELP for help.
> cqlsh> select count(*) from cfs.sblocks;
> Request did not complete within rpc_timeout.
> {noformat}
> Table definition:
> {noformat}
> cqlsh> describe columnfamily cfs.sblocks;
> CREATE TABLE sblocks (
>   key blob,
>   column1 blob,
>   value blob,
>   PRIMARY KEY (key, column1)
> ) WITH COMPACT STORAGE AND
>   bloom_filter_fp_chance=0.000068 AND
>   caching='KEYS_ONLY' AND
>   comment='Stores blocks of information associated with a inode' AND
>   dclocal_read_repair_chance=0.000000 AND
>   gc_grace_seconds=864000 AND
>   index_interval=128 AND
>   read_repair_chance=0.100000 AND
>   replicate_on_write='true' AND
>   populate_io_cache_on_flush='true' AND
>   default_time_to_live=0 AND
>   speculative_retry='99.0PERCENTILE' AND
>   memtable_flush_period_in_ms=0 AND
>   compaction={'class': 
> 'com.datastax.bdp.hadoop.cfs.compaction.CFSCompactionStrategy'} AND
>   compression={};
> {noformat}
> The 1.2 node reports the following error:
> {noformat}
> ERROR 08:38:02,006 Exception in thread Thread[Thread-32,5,main]
> java.lang.ArrayIndexOutOfBoundsException: 36
>       at org.apache.cassandra.net.MessageIn.read(MessageIn.java:59)
>       at 
> org.apache.cassandra.net.IncomingTcpConnection.receiveMessage(IncomingTcpConnection.java:208)
>       at 
> org.apache.cassandra.net.IncomingTcpConnection.handleModernVersion(IncomingTcpConnection.java:140)
>       at 
> org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:83)
> {noformat}
> There were no errors during the upgrade.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to