Avoid sharing session with RenderedTaskInstanceFields write and delete #9993
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.
Sharing session with RTIF leads to idle-in-transaction timeout error when DAG serialization is enabled and task running duration exceeds the idle-in-transaction timeout setting of the database.
The change was introduced in #6788.
In many production databases, the idle-in-transaction timeout is not unlimited. For example, if the timeout is set to 1 hour, any task that runs for more than 1 hour will raise an exception even if the actual task succeeds.
Procedure to reproduce the bug and isolate the issue:
Use this docker-compose:
and put this DAG in dags folder:
Run the following:
Enable the DAG in webserver http://localhost:8080/ and wait for 1 minute to see the log.
{python_operator.py:114} INFO - Done. Returned value was: None
{taskinstance.py:1150} ERROR - (psycopg2.errors.IdleInTransactionSessionTimeout) terminating connection due to idle-in-transaction timeout
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
Search for
BEGIN (implicit)
in the log. TheBEGIN (implicit)
forrendered_task_instance_fields
does not have a correspondingCOMMIT
^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code change, Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in UPDATING.md.