kaxil opened a new pull request, #27167:
URL: https://github.com/apache/airflow/pull/27167

   same as https://github.com/apache/airflow/pull/21157
   
   TaskListener API's contract promises to pass TaskInstance object to listener 
plugin. However, what happens is not 100% true - the object being passed is one 
that maps to current SQLAlchemy session.
   
   `_run_raw_task` before merging the TI operates on detached TaskInstance 
object, then merges it to current session. Since there is no attached object in 
the SQLAlchemy identity map, SQLAlchemy creates it, and it's this object that's 
being passed to the SQLAlchemy event listeners.
   
   The problem with that is that when creating new SQLAlchemy object, 
SQLAlchemy takes care about setting only database-mapped fields. The ones that 
are purely on the python side, like task aren't being set on the new object.
   
   This PR manually sets `task` on the new SQLAlchemy object, so that 
`on_task_instance_success` and `on_task_instance_failed` receives proper 
TaskInstance with task field set.
   
   ---
   **^ Add meaningful description above**
   
   Read the **[Pull Request 
Guidelines](https://github.com/apache/airflow/blob/main/CONTRIBUTING.rst#pull-request-guidelines)**
 for more information.
   In case of fundamental code changes, an Airflow Improvement Proposal 
([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals))
 is needed.
   In case of a new dependency, check compliance with the [ASF 3rd Party 
License Policy](https://www.apache.org/legal/resolved.html#category-x).
   In case of backwards incompatible changes please leave a note in a 
newsfragment file, named `{pr_number}.significant.rst` or 
`{issue_number}.significant.rst`, in 
[newsfragments](https://github.com/apache/airflow/tree/main/newsfragments).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to