amoghrajesh commented on code in PR #55767:
URL: https://github.com/apache/airflow/pull/55767#discussion_r2374953992
##########
task-sdk/src/airflow/sdk/execution_time/supervisor.py:
##########
@@ -1147,8 +1151,22 @@ def final_state(self):
return self._terminal_state or TaskInstanceState.SUCCESS
if self._exit_code != 0 and self._terminal_state == SERVER_TERMINATED:
return SERVER_TERMINATED
+
+ if self._exit_code != 0 and self._is_signal_retryable() and
self._should_retry:
+ return TaskInstanceState.UP_FOR_RETRY
+
return TaskInstanceState.FAILED
+ def _is_signal_retryable(self) -> bool:
+ """Check if the exit code signal can be retried."""
+ if self._exit_code is None:
+ return False
+
+ if self._exit_code == -signal.SIGKILL or self._exit_code ==
-signal.SIGTERM:
+ return True
Review Comment:
SIGSEGV makes sense yes. But what about SIGABRT? IIRC, it is called mainly
for assertions? Do we want to retry that?
--
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]