Before Creating the Bug Report
Runtime platform environment
Ubuntu 24.04 LTS
RocketMQ version
develop
JDK Version
jdk8
Describe the Bug
When LitePushConsumer receives messages, the Java SDK sets autoRenew=true in ReceiveMessageRequest, and the following renewals are performed by the proxy in the background.
Currently, when proxy stores MessageReceiptHandle in ReceiveMessageActivity#handleAutoRenew, it does not preserve liteTopic from the received message. As a result,
ReceiptHandleProcessor later sends auto-renew requests to broker with an empty ChangeInvisibleTimeRequestHeader#liteTopic, so broker cannot enter the lite-topic-specific renewal path.
The Java SDK already carries liteTopic for explicit ACK and explicit changeInvisible requests, so the issue happens inside proxy auto-renew when storing the receipt handle.
This may cause lite messages to fail to extend invisible time as expected during long-running consumption, leading to early redelivery or duplicate delivery.
Steps to Reproduce
x
What Did You Expect to See?
x
What Did You See Instead?
x
Additional Context
No response
Before Creating the Bug Report
I found a bug, not just asking a question, which should be created in GitHub Discussions.
I have searched the GitHub Issues and GitHub Discussions of this repository and believe that this is not a duplicate.
I have confirmed that this bug belongs to the current repository, not other repositories of RocketMQ.
Runtime platform environment
Ubuntu 24.04 LTS
RocketMQ version
develop
JDK Version
jdk8
Describe the Bug
When LitePushConsumer receives messages, the Java SDK sets
autoRenew=trueinReceiveMessageRequest, and the following renewals are performed by the proxy in the background.Currently, when proxy stores
MessageReceiptHandleinReceiveMessageActivity#handleAutoRenew, it does not preserveliteTopicfrom the received message. As a result,ReceiptHandleProcessorlater sends auto-renew requests to broker with an emptyChangeInvisibleTimeRequestHeader#liteTopic, so broker cannot enter the lite-topic-specific renewal path.The Java SDK already carries
liteTopicfor explicit ACK and explicit changeInvisible requests, so the issue happens inside proxy auto-renew when storing the receipt handle.This may cause lite messages to fail to extend invisible time as expected during long-running consumption, leading to early redelivery or duplicate delivery.
Steps to Reproduce
x
What Did You Expect to See?
x
What Did You See Instead?
x
Additional Context
No response