lusong created ROCKETMQ-196:
-------------------------------

             Summary: sendMessageBack() will lost one retry message when slave 
prodvide consuming service
                 Key: ROCKETMQ-196
                 URL: https://issues.apache.org/jira/browse/ROCKETMQ-196
             Project: Apache RocketMQ
          Issue Type: Bug
          Components: rocketmq-client
    Affects Versions: 4.0.0-incubating
            Reporter: lusong
            Assignee: Xiaorui Wang
         Attachments: consumerSendMsgBack.png, sendMessageBack.png

sendMessageBack() will lost one retry message when slave prodvide
consuming service. Need change retry message's delayLevel =
(2+reconsumeTims).

Normally, first retry message's deleylevel=3 and reconsumetimes=1, according to 
SendMessageProcessor.consumerSendMsgBack()(please check 
consumerSendMsgBack.png).
But when master is down, send retry message will go to 
DefaultMQPushConsumerImpl.sendMessageBack() (please check sendMessageBack.png), 

the retry message's delaylevel=3 and reconsumetime=0 according to this 
statement:
"newMsg.setDelayTimeLevel(3 + msg.getReconsumeTimes());"

This will cause lose one retry message finally. Because generate DLQ or finish 
consuming according delaylevel. 






--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to