aaron-y-chen opened a new pull request, #76713:
URL: https://github.com/apache/airflow/pull/76713

   `openlineage_manual_state_dag` intermittently fails in the OpenLineage e2e 
compatibility tests against Airflow 3.0.6 because it requires events that this 
core version does not reliably emit. The failure occurred in both the [ARM 
job](https://github.com/apache/airflow/actions/runs/42515535374/job/128843158975)
 and the [AMD 
job](https://github.com/apache/airflow/actions/runs/42487484204/job/128758179801),
 including their automatic Dag retries.
   
   In Airflow 3.0.6, a task-instance PATCH with `include_upstream` or 
`include_downstream` updates multiple task instances, but [notifies listeners 
only for 
`tis[0]`](https://github.com/apache/airflow/blob/3.0.6/airflow-core/src/airflow/api_fastapi/core_api/routes/public/task_instances.py#L900).
 The query has no guaranteed ordering, so either the running `sleep_*` task or 
the unstarted `after_*` task receives the notification and emits its terminal 
event. The expected events already gate the corresponding `sleep_*` checks on 
Airflow 3.1, but require the `after_*` terminal events on every version. This 
makes the 3.0.6 result depend on which task the query returns first.
   
   [Airflow 3.1.0 notifies listeners for every updated task 
instance](https://github.com/apache/airflow/blob/3.1.0/airflow-core/src/airflow/api_fastapi/core_api/services/public/task_instances.py#L123).
 Add the existing `$since: "3.1"` version marker to the two remaining 
expectations:
   
   - COMPLETE for 
`openlineage_manual_state_dag_tasks__notrigger.after_downstream_success`.
   - FAIL for 
`openlineage_manual_state_dag_tasks__notrigger.after_upstream_failed`.
   
   The entire test Dag and both state-change scenarios still execute on Airflow 
3.0.6; only these two event checks are skipped. Airflow 3.1 and later retain 
all existing checks, and the assertions that the unstarted tasks emit no START 
events remain enabled on every version. The Dag's docstring documents the core 
limitation and the reason for the version boundary.
   
   Validation: `git diff --cached --check` passed. Parsing and comparing the 
staged event templates confirmed that 3.0.6 drops exactly these two 
expectations, while the effective templates for 3.1.0, 3.1.8 and 3.4.0 are 
unchanged. End-to-end tests have not been run locally; the Airflow 3.0.6 
compatibility job still needs to validate the change.
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes — Codex (GPT-6)
   
   Generated-by: Codex (GPT-6) following [the 
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
   


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