-
Notifications
You must be signed in to change notification settings - Fork 174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Snow 1853185 jdbc driver v3.16 native okta http retry storm #2064
Snow 1853185 jdbc driver v3.16 native okta http retry storm #2064
Conversation
… into SNOW-1853185-JDBC-Driver-v3.16-Native-Okta-HTTP-Retry-Storm
…ative-Okta-HTTP-Retry-Storm' into SNOW-1853185-JDBC-Driver-v3.16-Native-Okta-HTTP-Retry-Storm
…-HTTP-Retry-Storm
…ative-Okta-HTTP-Retry-Storm' into SNOW-1853185-JDBC-Driver-v3.16-Native-Okta-HTTP-Retry-Storm
…-HTTP-Retry-Storm
…-HTTP-Retry-Storm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the failing StatementLatestIT.testSetQueryTimeoutForAsyncQueryUsingConnectionProperty
test somehow related to the changes made in this PR or it's just some flaky test that failed randomly?
Seems like there were some temporary issues - I reran the failed jobs and they passed. |
Overview
SNOW-1853185
Pre-review self checklist
master
branchmvn -P check-style validate
)mvn verify
and inspecttarget/japicmp/japicmp.html
)SNOW-XXXX:
External contributors - please answer these questions before submitting a pull request. Thanks!
What GitHub issue is this PR addressing? Make sure that there is an accompanying issue to your PR.
Issue: #NNNN
Fill out the following pre-review checklist:
@SnowflakeJdbcInternalApi
(note that public/protected methods/fields in classes marked with this annotation are already internal)Please describe how your code solves the related issue.
The issue with the previous code was that each time we did not succeed in authenticating using OKTA we threw an exception (Authentication timeout). It was caught in the outer loop and all steps were redone.
There were two major issues - described in the Jira task. First of all we did not wait before retrying those steps - because the exception was thrown before sleeping for the backoff time. Second problem was retrying all steps, while usually some of them were unnecessary (especially the first step of the federated auth flow).
To make code more modular the chosen solution included creating 2 classes.