You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2019/10/29 16:53:15 UTC

[GitHub] [pulsar] merlimat opened a new pull request #5499: Fixed dispatcher skipping delivery of a batch during concurrent replays

merlimat opened a new pull request #5499: Fixed dispatcher skipping delivery of a batch during concurrent replays
URL: https://github.com/apache/pulsar/pull/5499
 
 
   ### Motivation
   
   There is a race condition when replaying messages on the `PersistentDispatcherMultipleConsumers`. This is apparently only happening in the context of delivering messages after a scheduled delay. 
   
   The `Dispatcher.readMoreEntries()` can get invoked in multiple occasions: 
    * Piggybacking on the completion of the previous read operation
    * When the delaye tracker gets triggered
   
   If there is already a replay read operation pending, we're currently ignoring the message ids returned by the delay tracker. These messages will not be retried on any other occasion, leading to backlog building up (until a consumer disconnects/reconnects).
   
   ### Modifications
   
   If we know we have a pending replay operation, don't fetch message ids from the delay tracker.

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services