Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Normal
Description
MessageInHandler.decode() occasionally reads the payload incorrectly, passing the full message to MessageIn.read() instead of just the payload bytes.
You can see the stack trace in the logs from this CI run.
Caused by: java.lang.AssertionError: null
at org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:351)
at org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:371)
at org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:335)
at org.apache.cassandra.net.MessageIn.read(MessageIn.java:158)
at org.apache.cassandra.net.async.MessageInHandler.decode(MessageInHandler.java:132)
Reconstructed, truncated stream passed to MessageIn.read():
0000000b000743414c5f42414301002a01e1a5c9b089fd11e8b517436ee1243007040000005d10fc50ec
You can clearly see parameters in there encoded before the payload:
[43414c5f424143 - CAL_BAC] [01 - ONE_BYTE] [002a - 42, payload size] 01 e1 a5 c9 b0 89 fd 11 e8 b5 17 43 6e e1 24 30 07 04 00 00 00 1d 10 fc 50 ec