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
[Bug] jobs timing out early regardles of job_execution_timeout_seconds #1081
Comments
Looks like this was introduced in |
We have encountered the same issue: dbt-core 1.5.6 Downgrading the google-api-core version to < 2.16 appears to fix the issue. |
For more context see: googleapis/python-api-core#591 |
As @colin-rogers-dbt described the approach at googleapis/python-api-core#591 (comment) , we can improve the code to call the BigQuery API(s) at a fundamental level. Let me suggest to suggest so that we can control the timeout of BigQuery jobs. Here is the example code. It would be great to address what @colin-rogers-dbt suggested. Meanwhile, that would be good to enable setting the [UPDATE] |
We started seeing this issue this week as well and we do not specify after some research we discovered that the last build we did where this was working correctly, it was using the following transitive google library dependencies:
however when we built our latest docker image it pulled in newer versions of the google libraries
by updating our requirements.txt to pin the versions of the google libraries then we no longer see the 900 sec timeout
one of these libraries is causing the @classmethod
def get_job_execution_timeout_seconds(cls, conn):
credentials = conn.credentials
return credentials.job_execution_timeout_seconds << we do not have this defined anywhere should not be set this code for us should never execute # only use async logic if user specifies a timeout
if job_execution_timeout: << <should never get here because this should not be defined
loop = asyncio.new_event_loop()
future_iterator = asyncio.wait_for(
loop.run_in_executor(None, functools.partial(query_job.result, max_results=limit)),
timeout=job_execution_timeout,
)
try:
iterator = loop.run_until_complete(future_iterator)
except asyncio.TimeoutError:
query_job.cancel()
raise DbtRuntimeError(
f"Query exceeded configured timeout of {job_execution_timeout}s"
)
finally:
loop.close()
else:
iterator = query_job.result(max_results=limit)
return query_job, iterator |
any update on getting an actual fix in a release? |
python-api-core 2.17.0 with patch has been released https://github.com/googleapis/python-api-core/releases/tag/v2.17.0 |
@colin-rogers-dbt do you have an ETA, I see it in the current sprint. |
Fix has been released in 1.6.10 and 1.7.6 |
Is this a new bug in dbt-bigquery?
Current Behavior
Pulling this from a slack thread: https://getdbt.slack.com/archives/C99SNSRTK/p1706719877028389
Hello everyone,
We are currently scheduling our jobs via github actions to trigger dbt + bigquery stack, and we are having our sql models are timing out ~900 seconds when we have the relevant profile's job_execution_timeout_seconds at 5400.
This issue was not present 3 days ago - anyone having issues like this?
Expected Behavior
job_execution_timeout_seconds is respected in model execution
Steps To Reproduce
TBD
Relevant log output
Environment
Additional Context
No response
The text was updated successfully, but these errors were encountered: