3pacccccc commented on PR #24610:
URL: https://github.com/apache/pulsar/pull/24610#issuecomment-3160810874

   > > In my understanding, the fundamental design principle of 
`ZeroQueueConsumer` (receiverQueueSize=0) is to be a **strictly non-buffering 
consumer** that:
   > > 
   > > * Operates in pure request-response mode:
   > >   
   > >   * Each receive() call should trigger exactly one network request to 
the broker
   > >   * No messages should be retained client-side between receive() calls
   > 
   > I don't think that this is a correct assumption. In Pulsar, the receive 
method returns individual messages in a batch. When the broker sends a batch 
message to the client, it should be buffered on the client side, also with 
ZeroQueueConsumer.
   > 
   > It's very much possible that you have faced bugs in the 
ZeroQueueConsumerImpl implementation. When checking at the implementation, it 
doesn't seem to make a distinction between batch messages. In Pulsar code, it's 
bit of a mess that in some cases the permits are about batch messages and some 
times there are about individual messages. I have created an issue about that 
in #23263 . It's possible that the information in the issue isn't accurate.
   
   you can reproduce this issue with the example I mentioned above. so, I'm 
wondering is it ok that consumer gets blocked indefinitely?


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