Fixed increasing consumer permits after ack dedup operation #3787
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
With the delayed acknowledgment tracker, the deduping logic is used to ignore messages that are being resent from broker after reconnection but for which the application has already acked.
These acks are tracked in client library and sent later in batches (default 100ms).
When we ignore messages as dups for the above logic, we must always increase the available permits, otherwise the count will be off. In cases where the receiver queue size is small, that could lead to a consumer getting stuck, since it will not advertise more permits to the broker.