anmolxlight opened a new pull request, #75446: URL: https://github.com/apache/airflow/pull/75446
Part of #75394 * related: #74869, #74717 When `execution_timeout` elapses, the supervisor (#74869) waited another `killed_task_cleanup_time` before signaling a language SDK task, and if the task then exited without reporting, the outcome was wrong: | | Before | After | |---|---|---| | Go / TypeScript / Java task gets SIGTERM | `execution_timeout + killed_task_cleanup_time` | `execution_timeout` | | Stopped, exits without reporting, retries left | stays `running` until the scheduler marks it killed externally | `up_for_retry` | | Stopped, exits without reporting, no retries | `failed`, no reason | `failed` | | Stopped, swallows SIGTERM and exits 0 | `success` | `failed` | | Reason | none | `Task timed out after N seconds` | The Python runner keeps its own SIGALRM timer for now, so for Python tasks the supervisor stays a backstop with the `killed_task_cleanup_time` grace period, as before. An outcome the task reports itself (for example `RetryTask` from a runtime that handles SIGTERM) still wins. Not in this PR, since they need the decisions in the issue: removing the Python SIGALRM and `asyncio.wait_for` timers and choosing the signal that tells a Python task it timed out, and what to do with a task that reports success after its timeout. -- 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]
