thetumbled commented on PR #19451:
URL: https://github.com/apache/pulsar/pull/19451#issuecomment-1422114703

   > There have some problem:
   > 
   > 1. use Exclusive, why not use cumulative ack?
   > 2. only check the postion, how batch message can be redeliver?
   > 
   > I don't think it's necessary to fix it, at least for now
   
   1. i find that only in `Exclusive` mode can i recur the problem, it may be 
have something to do with different dispatcher. In shared mode the test code 
can not recur the issue.
   2. batch messages in pending ack state are filtered by your PR #14327. 
   3. According to my understanding, PR #14327 try to filter batch messages in 
pending ack state. for example, producer produce a batch message consisting of 
two messages msg1 and msg2. consumer use txn1 ack msg1, use txn2 ack msg2, then 
the consumer abort txn2, at this time, the bitset hold in PendingAckHandleImpl 
is 01, the bitset hold in cursor is 11. So when broker redeliver msgs to 
consumer triggered by transaction abortion, broker will send a batch message 
with bitset 11. so the consumer receive msg1 and msg2 again. but msg1 should be 
filtered. 
   4. and, i do not understand what you say in #14327, that is the risk of 
message lost.


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