Raise immediately on the token statuses RETRY_ERROR_DENY names - #194
Open
arpitjain099 wants to merge 1 commit into
Open
arpitjain099 wants to merge 1 commit into
arpitjain099 wants to merge 1 commit into
Conversation
Signed-off-by: Arpit Jain <arpitjain099@gmail.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.
JIRA Ticket: none, outside contribution.
What Does This PR Do?
get_authorization_token_with_retryreadsRETRY_ERROR_DENYbackwards. The list names 400 and 429 as the statuses that should not be retried, but the condition isso membership suppresses the raise rather than skipping the retries. Those two end up being the only statuses retried all the way to the last attempt, and once they get there nothing raises, the loop ends and the function returns
None.Changing
and ... not intoor ... inmakes them raise on the first failure and leaves every other status alone.What Should Reviewers Watch For?
Whether raising straight away on a 429 is really what you want, or whether it deserves one backoff first. The list name says do not retry, so that is what I implemented, but it is your call.
Validation
Stubbed the token endpoint and kept
time.sleepin place with the delays recorded. Onmaina persistent 400 or 429 calls the endpoint four times, sleeps for 30 seconds and returnsNone; a persistent 500 raisesHTTPErrorafter three retries. With the change 400 and 429 raise on the first failure with no sleep, and 500 behaves exactly as before.The
Noneis the part that matters.authorization_callbackalready catches the exception and reportsERR_TOKEN_EXCHANGE, so a token exchange failure currently slips past that handler, reaches the EOB call with no token and gets reported to the user as an EOB query error.