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]
