ChickenBenny commented on PR #75387: URL: https://github.com/apache/airflow/pull/75387#issuecomment-6362737233
Thanks! Agreed that a worker-only `[core] default_task_execution_timeout` silently stopping is the breaking part worth avoiding. I didn't make the worker config take precedence over `TIRunContext`, because the worker cannot tell whether the run-context value is the default or set by the Dag: the Dag processor writes the resolved default into the serialized task itself, so it looks the same as an explicit `execution_timeout`. "Worker config first" would override explicit values, and avoiding that would need a new `TIRunContext` field plus a Cadwyn version change. Instead, the worker config is used only when the run context has no timeout: - **Runner**: uses `TIRunContext.execution_timeout`. If it is `None` and the re-parsed task carries the worker's default, it uses the worker's default and logs a deprecation warning. - **Supervisor**: on `StartExecutionTimeout`, if the run context has no timeout, it reads its own `[core] default_task_execution_timeout`. Both sides compute `max(default.total_seconds(), 0.0)` from the same config, so they always agree, and `StartExecutionTimeout` still carries no value. The "equals the worker's default" check matters: the re-parsed value can also come from a Dag file changed since it was serialized, or from `pre_execute`, which the supervisor cannot see. In those cases there is no fallback, so runner and supervisor stay consistent. -- 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]
