Repository navigation
Fix api-server --apps silently dropping apps and accepting typos - #73371
Eason09053360 wants to merge 1 commit into
Conversation
`create_app` split the selection on commas and compared the raw pieces, so `--apps "core, execution"` never matched `"execution"` and the Execution API was not mounted -- leaving workers with no endpoint to report to, while the server started normally and printed `Apps: core, execution`. An unknown name such as `--apps cores` matched nothing either and produced a server with no routes at all. Parse the selection through `parse_apps_selection()`, which strips whitespace, drops empty entries and rejects unknown names. The CLI validates up front so a bad value is reported on the terminal rather than as a traceback from the forked server process.
|
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
airflow api-server --appspicks which sub-apps get mounted.create_app()split the value on commas and compared the raw pieces, with no validation:--apps "core, execution"—" execution"never matched, so/executionwas not mounted and every worker callback 404'd. The server started normally and printedApps: core, execution.--apps cores— matched neither branch, so the server came up with no routes at all.Both failed silently.
AIRFLOW_API_APPSreaches the same code.What
parse_apps_selection()strips whitespace, drops empty entries and rejects unknown names; an empty selection still meansall. The CLI validates up front, since the app is only built after the process forks. Values that were already valid are unaffected.Two calls for you to make:
@action_cliwrites its audit row before a bad value is rejected. An argparsetype=would need either a duplicate copy of the valid-name list or aairflow.api_fastapi.appimport at CLI parse time.--apps ALLis now rejected rather than silently mounting nothing. Say the word and I'll add.lower().Was generative AI tooling used to co-author this PR?
Generated-by: Claude Code (Opus 5) following the guidelines