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

Yifan Cai commented on CASSANDRA-16157:
---------------------------------------

I can produce the {{IllegalArgumentException}} in the 
{{Instance#serializeMessage}} code path by unapplying the patch. But I cannot 
reproduce the mentioned RTE in the {{deserializeMessage}} code path. 

When applying the patch, the {{reserializationDuringUpgradeFrom30}} test always 
passes. 

Beside, providing the {{toString}} override in {{MessageImpl}} to display the 
{{verb, id, version and from}} can give better clarity in the exception 
message. For example, 
{code:java}
java.lang.RuntimeException: Can not deserialize message (verb: 1, id, 1, 
version: VERSION, from: IP)
{code}


> RTE during re-serialization for message filtering during 3.0 -> 4.0 upgrade
> ---------------------------------------------------------------------------
>
>                 Key: CASSANDRA-16157
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16157
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Test/dtest/java
>            Reporter: Alex Petrov
>            Assignee: Alex Petrov
>            Priority: Normal
>
> When trying to upgrade 3.0 to 4.0, we’re often running into a problem, if 
> older node serves as a coordinator:
> {code}
>  15294 java.lang.RuntimeException: Can not deserialize message 
> org.apache.cassandra.distributed.impl.MessageImpl@4c46aead
>   15295         at 
> org.apache.cassandra.distributed.impl.Instance.deserializeMessage(Instance.java:299)
>  ~[dtest-4.0-beta3.jar:?]
>   15296         at 
> org.apache.cassandra.distributed.impl.Instance.lambda$receiveMessage$7(Instance.java:315)
>  ~[dtest-4.0-beta3.jar:?]
>   15297         at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> ~[?:1.8.0_232]
>   15298         at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
> ~[?:1.8.0_232]
>   15299         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  ~[?:1.8.0_232]
>   15300         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  ~[?:1.8.0_232]
>   15301         at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  [dtest-4.0-beta3.jar:?]
>   15302         at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232]
>   15303 Caused by: java.io.EOFException
>   15304         at 
> org.apache.cassandra.io.util.RebufferingInputStream.readByte(RebufferingInputStream.java:180)
>  ~[dtest-4.0-beta3.jar:?]
>   15305         at 
> org.apache.cassandra.utils.vint.VIntCoding.readUnsignedVInt(VIntCoding.java:68)
>  ~[dtest-4.0-beta3.jar:?]
>   15306         at 
> org.apache.cassandra.io.util.RebufferingInputStream.readUnsignedVInt(RebufferingInputStream.java:243)
>  ~[dtest-4.0-beta3.jar:?]
>   15307         at 
> org.apache.cassandra.net.Message$Serializer.deserializeHeaderPost40(Message.java:694)
>  ~[dtest-4.0-beta3.jar:?]
>   15308         at 
> org.apache.cassandra.net.Message$Serializer.deserializePost40(Message.java:765)
>  ~[dtest-4.0-beta3.jar:?]
>   15309         at 
> org.apache.cassandra.net.Message$Serializer.deserialize(Message.java:625) 
> ~[dtest-4.0-beta3.jar:?]
>   15310         at 
> org.apache.cassandra.distributed.impl.Instance.deserializeMessage(Instance.java:295)
>  ~[dtest-4.0-beta3.jar:?]
>   15311         ... 7 more
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to