[Core] Do not requeue all responses #2840
Merged
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 does this PR do?
Not all requests should be replayed. We already do not replay requests that are too large (#2418), this extends the logic to 400 responses and makes the list of bad response types into a constant (
RESPONSES_TO_REJECT
), so that it can easily be added to or pruned.Motivation
It was causing some issues in certain setups that these were being requeued. Also, it's wasteful to requeue responses that we know will be rejected. And, it's confusing to pollute the logs with re-rejections of validly rejected requests.
Additional Questions
Rather than having a blacklist of responses, we might want to have a whitelist of responses: Only requeue responses that were rejected for network errors or server errors.