• M
    Fixed dispatcher skipping delivery of a batch during concurrent replays (#5499) · 203b0fde
    Matteo Merli 提交于
    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).
    
    (cherry picked from commit 01ca24b3)
    203b0fde
PersistentDispatcherMultipleConsumers.java 33.3 KB