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

   related: #69873, #70247
   
   ### Problem
   
   When one bulk Dag run update request (`PATCH /dags/{dag_id}/dagRuns`, action 
`update`) sets both `state` and `note` on a run, the `on_dag_run_success` / 
`on_dag_run_failed` listeners see the run's previous note instead of the note 
sent in the request.
   
   ### Cause
   
   `BulkDagRunService.handle_bulk_update` calls `patch_dag_run_state()`, which 
fires the listeners, before `patch_dag_run_note()`. The bulk update path was 
added in #67948. #69873 fixed this order for the single-run PATCH route and 
#70247 fixed it for task instances, but neither covered the bulk Dag run path.
   
   ### Fix
   
   Apply the note before the state in `handle_bulk_update`, matching the 
single-run route.
   
   ### Testing
   
   - Added 
`TestBulkDagRuns.test_bulk_update_listener_sees_note_when_note_and_state_both_updated`,
 the bulk equivalent of the single-run test from #69873. It fails without the 
fix (the listener sees `None`) and passes with it.
   - 
`airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_dag_run.py`: 
402 passed.
   - `prek run --stage pre-commit` on the changed files passed. 
`generate-openapi-spec` and `check-tests-in-the-right-folders` were skipped 
locally because they need Breeze; there is no API schema change.
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes (please specify the tool below)
   
   Generated-by: Claude Code following [the 
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
   
   ---
   
   * Read the **[Pull Request 
Guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#pull-request-guidelines)**
 for more information. Note: commit author/co-author name and email in commits 
become permanently public when merged.
   * For fundamental code changes, an Airflow Improvement Proposal 
([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals))
 is needed.
   * When adding dependency, check compliance with the [ASF 3rd Party License 
Policy](https://www.apache.org/legal/resolved.html#category-x).
   * For significant user-facing changes create newsfragment: 
`{pr_number}.significant.rst`, in 
[airflow-core/newsfragments](https://github.com/apache/airflow/tree/main/airflow-core/newsfragments).
 You can add this file in a follow-up commit after the PR is created so you 
know the PR number.
   


-- 
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