- Notifications
You must be signed in to change notification settings - Fork1.6k
feat(bigquery): add timeout parameter to QueryJob.done() method#9875
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
plamut commentedDec 9, 2019
87d74f7 to2044a84Compareplamut commentedDec 11, 2019
A snippets test failed, seems like flakiness (it passed on several previous runs). Re-running. |
In addition, fix the timeout logic in QueryJob.done() - the timeoutsare in different units (seconds vs. milliseconds)
The new timeout feature requires more recent versions of the API coreand google auth dependencies.
Uh oh!
There was an error while loading.Please reload this page.
If the server-side processing timeout is used (the `timeout_ms` APIparameter) as the total timeout, it should be slightly longer thanthe actual server-side timeout in order to not timeout the connectionwhile there might still be chance that the server-side processinghas actually completed.
tswast left a comment
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.
Thanks!
Uh oh!
There was an error while loading.Please reload this page.
Fixes#7831.
Requires#9873.
This is a proposed fix for the
done()method getting stuck. It makes sure that the underlying HTTP request does not block indefinitely when retrieving query results, and that any underlyingrequestsexceptions are retriable.TODO
timeoutparameter to_http.JSONConnection.api_request()(feat(core): add timeout param to JSONConnection.api_request() #9915)timeoutparameter togoogle.auth.transport.AuthorizedSession.request()that BigQuery client uses as its transport (feat: add timeout parameter to AuthorizedSession.request() google-auth-library-python#406)setup.pyto depend on the newapi_coreversion, and the newauthlibrary version (once the timeout-related changes are merged, and the new versions of those libraries released).