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]


Reply via email to