Popo-lth opened a new issue #2447:
URL: https://github.com/apache/rocketmq/issues/2447
When `MessageListenerConcurrently.consumeMessage` throws an exception, RMQ
will continuously output two logs: `consumeMessage exception...` and
`consumeMessage return null...`
```
2020-11-20 13:29:12,037 WARN ConsumeMessageThread_1 RocketmqClient 421:
consumeMessage exception: java.lang.NullPointerException Group:
CG-creation-video_key_produce_event_message Msgs: [MessageExt [queueId=0,
storeSize=656, queueOffset=48515999, sysFlag=0, bornTimestamp=1605848432002,
bornHost=/10.51.0.245:45150, storeTimestamp=1605850152035,
storeHost=/10.16.166.181:10911, msgId=0A10A6B500002A9F000001B0154039A3,
commitLogOffset=1855782402467, bodyCRC=2007126334, reconsumeTimes=9,
preparedTransactionOffset=0, toString()=Message
[topic=video_key_produce_event_message, flag=0,
properties={MIN_OFFSET=46918247,
REAL_TOPIC=%RETRY%CG-creation-video_key_produce_event_message,
ORIGIN_MESSAGE_ID=0A10A6B500002A9F000001B00E740A1A,
RETRY_TOPIC=video_key_produce_event_message, MAX_OFFSET=48516000,
KEYS=6907951468586400, CONSUME_START_TIME=1605850152037,
UNIQ_KEY=AC1100310014108C4C3564A36D825160, WAIT=false, DELAY=11,
TAGS=releaseResult, REAL_QID=0}, body=244]]] MQ: MessageQueue [topic=%RETRY%
CG-creation-video_key_produce_event_message, brokerName=broker-2, queueId=0]
2020-11-20 13:29:12,037 WARN ConsumeMessageThread_1 RocketmqClient 448:
consumeMessage return null, Group: CG-creation-video_key_produce_event_message
Msgs: [MessageExt [queueId=0, storeSize=656, queueOffset=48515999, sysFlag=0,
bornTimestamp=1605848432002, bornHost=/10.51.0.245:45150,
storeTimestamp=1605850152035, storeHost=/10.16.166.181:10911,
msgId=0A10A6B500002A9F000001B0154039A3, commitLogOffset=1855782402467,
bodyCRC=2007126334, reconsumeTimes=9, preparedTransactionOffset=0,
toString()=Message [topic=video_key_produce_event_message, flag=0,
properties={MIN_OFFSET=46918247,
REAL_TOPIC=%RETRY%CG-creation-video_key_produce_event_message,
ORIGIN_MESSAGE_ID=0A10A6B500002A9F000001B00E740A1A,
RETRY_TOPIC=video_key_produce_event_message, MAX_OFFSET=48516000,
KEYS=6907951468586400, CONSUME_START_TIME=1605850152037,
UNIQ_KEY=AC1100310014108C4C3564A36D825160, WAIT=false, DELAY=11,
TAGS=releaseResult, REAL_QID=0}, body=244]]] MQ: MessageQueue
[topic=%RETRY%CG-creation-video_key_produce
_event_message, brokerName=broker-2, queueId=0]
```
Actually `MessageListenerConcurrently.consumeMessage` does not return
`null`, the log description is not accurate. It is recommended to make the
following changes
```java
---
a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessageConcurrentlyService.java
+++
b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ConsumeMessageConcurrentlyService.java
@@ -423,6 +423,10 @@ public class ConsumeMessageConcurrentlyService
implements ConsumeMessageService
if (hasException) {
returnType = ConsumeReturnType.EXCEPTION;
} else {
+ log.warn("consumeMessage return null, Group: {} Msgs:
{} MQ: {}",
+
ConsumeMessageConcurrentlyService.this.consumerGroup,
+ msgs,
+ messageQueue);
returnType = ConsumeReturnType.RETURNNULL;
}
} else if (consumeRT >=
defaultMQPushConsumer.getConsumeTimeout() * 60 * 1000) {
@@ -438,10 +442,6 @@ public class ConsumeMessageConcurrentlyService
implements ConsumeMessageService
}
if (null == status) {
- log.warn("consumeMessage return null, Group: {} Msgs: {}
MQ: {}",
- ConsumeMessageConcurrentlyService.this.consumerGroup,
- msgs,
- messageQueue);
status = ConsumeConcurrentlyStatus.RECONSUME_LATER;
}
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]