Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-14574

Incomplete handling of exceptions when decoding incoming messages

    XMLWordPrintableJSON

    Details

    • Severity:
      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

        Attachments

          Activity

            People

            • Assignee:
              jasobrown Jason Brown
              Reporter:
              aleksey Aleksey Yeschenko
              Authors:
              Jason Brown
              Reviewers:
              Dinesh Joshi
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: