TS-3959: requests are retryable only if bytes were sent and there was no connection error#658
Merged
jacksontj merged 2 commits intoapache:masterfrom May 24, 2016
Merged
Conversation
Member
|
This looks like a good change, because |
… no connection error The root issue that TS-4328 and TS-3440 were trying to fix was that ATS was too aggressive in retries to origin (namely after the origin had already recieved the request). The previous patches attempted to have ATS not retry assuming bytes were sent on the wire-- sadly TS-4328 actually only checks that we set bytes to be written to the wire. To fix this we simply check if there was a connection failure to origin, if so we'll assume that it is retryable (since connection failures to origin should only be due to errors writing/connecting etc.).
Specifically, we want to test the race condition between KA resuse ATS side and the origin closing the connection
JosiahWI
pushed a commit
to JosiahWI/trafficserver
that referenced
this pull request
Jul 19, 2023
apache#658) * traffic_ctl - Add rpc invoke option. (apache#8695) Add Input option to invoke a rpc function by specifying the method name and the parameters directly from the command line. (cherry picked from commit 20d2241) * MGMT - Improve invalid rpc param error description and some cleanup. (apache#8696) (cherry picked from commit 304ea26) * traffic_ctl - Run a clean up on the output style parameters making it easy to use. 'all,req,resp' are now grouped into the '--format rpc' option. (apache#8704) (cherry picked from commit 68e69e2) Co-authored-by: Damian Meden <damian.meden@gmail.com> Co-authored-by: Brian Neradt <brian.neradt@verizonmedia.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The root issue that TS-4328 and TS-3440 were trying to fix was that ATS was too aggressive in retries to origin (namely after the origin had already recieved the request). The previous patches attempted to have ATS not retry assuming bytes were sent on the wire-- sadly TS-4328 actually only checks that we set bytes to be written to the wire. To fix this we simply check if there was a connection failure to origin, if so we'll assume that it is retryable (since connection failures to origin should only be due to errors writing/connecting etc.).