f1amingo opened a new issue, #11191:
URL: https://github.com/apache/rocketmq/issues/11191

   ### Before Creating the Bug Report
   
   - [x] I found a bug, not just asking a question.
   - [x] I have searched the GitHub Issues and Discussions and believe this is 
not a duplicate.
   - [x] I have confirmed this bug belongs to the current repository.
   
   ### Runtime platform environment
   
   OS: macOS / Linux
   
   ### RocketMQ version
   
   branch: develop
   
   ### JDK Version
   
   Oracle JDK 11
   
   ### Describe the Bug
   
   When a consumer subscribes to multiple lite topics with FIFO (ordered) 
consumption, a lite topic can get stuck after delivering only its first 
message. Its remaining messages are never delivered even though they exist: the 
event queue becomes empty and the consumer offset stops advancing.
   
   ### Steps to Reproduce
   
   1. A consumer subscribes to two lite topics (e.g. `lt1` and `lt2`), each 
with 5 messages.
   2. One pull reads `lt1`'s first message (now in-flight and FIFO-blocked) 
together with `lt2`'s messages.
   3. While the broker is still assembling the same pull, `lt1`'s first message 
is acked, which advances the offset, unblocks FIFO and re-dispatches `lt1`'s 
event back into the client queue.
   4. The re-dispatched `lt1` event is dropped because `lt1` had already been 
recorded in the per-request dedup set.
   
   ### What Did You Expect to See?
   
   The consumer eventually receives all messages of every subscribed lite topic 
(5 + 5 = 10).
   
   ### What Did You See Instead?
   
   `lt1` only yields its first message, so the consumer receives 6 messages 
instead of 10. The event queue is empty and `lt1`'s offset stays at 0, so the 
remaining messages are never delivered.
   
   ### Additional Context
   
   Root cause: a lite topic is recorded in the per-request dedup set before it 
is actually handled. When it is FIFO-blocked and then re-dispatched (via ack 
unblock) within the same pull, the re-dispatched event is treated as a 
duplicate and silently dropped.
   


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to