Fixed dispatcher skipping delivery of a batch during concurrent replays (#5499)
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)
Showing
想要评论请 注册 或 登录