Repository navigation
Fix empty audit log dag_id for DAG.cli() subcommands - #73379
Eason09053360 wants to merge 1 commit into
Conversation
702d7dc to
0563fcd
Compare
The Dag file is its own entry point on this path, so the parser behind DAG.cli() drops dag_id - there is nothing for the user to type. But action_cli snapshots the namespace and writes the Log row before the handler runs, so every audit row for python my_dag.py dags pause and its five sibling subcommands lands with dag_id NULL: the event cannot be filtered by Dag, and in multi-team mode team_name is resolved from dag_id, so it also drops out of the owning team's view. The back-fills already inside set_is_paused, dag_list_dag_runs and dag_list_jobs cannot cover this. They run after that insert has been committed, and they write to the namespace rather than to the metrics dict that was built from it. Every one of the six subcommands receives the Dag positionally and reads args.dag_id only behind a dag or ... short-circuit, so supplying it changes no control flow - only what the audit row records.
0563fcd to
072113e
Compare
|
Hello @Eason09053360 - thank you for your contributions to Apache Airflow! The Airflow community has introduced a limit of 5 open pull requests at a time for contributors without write access to the repository. You currently have 33 open pull requests, so - as a one-time step of introducing the limit - we closed the ones where maintainers have not engaged yet:
These pull requests stay open because maintainers are already engaged in them - they count towards your limit:
This is not a judgement of you or of your changes. We never told contributors before that opening many pull requests at once was a problem, so there is nothing to feel bad about - and nothing is lost: your branches, commits and the review history stay where they are. What we ask you to do is to make your first prioritization decision: choose which of the pull requests above matter most to you, and reopen them (up to 5 open at a time, including the ones still open) with the "Reopen pull request" button or While your pull requests are waiting for review, the most valuable thing you can do is help in other ways - reviewing other contributors' pull requests, helping with issues, and taking part in the discussions on the devlist and Slack. Why we introduced the limit, what it means for you and how to reopen or restore a pull request is explained in https://github.com/apache/airflow/blob/main/contributing-docs/32_open_pull_request_limit.rst. Drafted-by: Claude Code (Opus 5); reviewed by @potiuk before posting |
Why
DAG.cli()'s parser stripsdag_id, butaction_clisnapshots the namespace and writes theLogrow before the handler runs. Audit rows forpython my_dag.py dags pauseand the five otherDAG.cli()subcommands land withdag_idNULL not filterable by Dag, and undercore.multi_teamtheteam_namederived from it is lost too. The handlers' own back-fills run after that insert.What
DAG.cli()now setsargs.dag_idbefore dispatch. Every affected handler receives the Dag positionally and readsargs.dag_idonly behind adag or ...short-circuit, so nothing but the audit row changes. The test goes throughtasks list, the one affected handler that does not back-filldag_iditself.Was generative AI tooling used to co-author this PR?
Generated-by: Claude Code (Opus 5) following the guidelines