diff --git a/store/src/main/java/org/apache/rocketmq/store/CommitLog.java b/store/src/main/java/org/apache/rocketmq/store/CommitLog.java index d6ea017218b..2c60d0059f1 100644 --- a/store/src/main/java/org/apache/rocketmq/store/CommitLog.java +++ b/store/src/main/java/org/apache/rocketmq/store/CommitLog.java @@ -618,8 +618,18 @@ public DispatchRequest checkMessageAndReturnSize(java.nio.ByteBuffer byteBuffer, return new DispatchRequest(-1, false/* success */); } } else { + // Read full message for logging when error occurs + ByteBuffer fullMessageBuffer = byteBuffer.duplicate(); + int messageStartPos = fullMessageBuffer.position() - totalSize; + fullMessageBuffer.position(messageStartPos); + fullMessageBuffer.limit(messageStartPos + totalSize); + byte[] fullMessageBytes = new byte[totalSize]; + fullMessageBuffer.get(fullMessageBytes, 0, totalSize); + + // Print full message and especially properties log.warn( - "CommitLog#checkAndDispatchMessage: failed to check message CRC, not found CRC in properties"); + "CommitLog#checkAndDispatchMessage: failed to check message CRC, not found CRC in properties. topic={}, properties={}, propertiesLength={}, fullMessageHex={}", + topic, propertiesMap != null ? propertiesMap.toString() : "null", propertiesLength, UtilAll.bytes2string(fullMessageBytes)); return new DispatchRequest(-1, false/* success */); } }