KAFKA-20015: Stop sending timed out fetch requests from ShareConsumeRequestManager. #21206
+156
−34
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.
What
Currently, when
ShareConsumerImpl::poll()times out with an empty response, the background thread does not automatically stop fetching from the broker. TheShareConsumeRequestManagerkeeps sending requests until it actually receives any data.This means we could continue fetching from the broker when we did not intend to and these records would unnecessarily start timing out sooner than we want.
This was noticed during a integ test which was previously flaky when it had an extra
poll()before we started producing data.PR fixes this by passing the
pollTimeoutthrough theShareFetchEventsending fetch requests as soon as the user passed timeout completes on the application.