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]

Reply via email to