This is an automated email from the ASF dual-hosted git repository.

vatsrahul1001 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new b99aa145c40 Add regression test for SERVER_TERMINATED precedence over 
retry (#70774)
b99aa145c40 is described below

commit b99aa145c400d204aa72e84a05e5691136e28e46
Author: Henry Chen <[email protected]>
AuthorDate: Tue Aug 4 15:07:16 2026 +0800

    Add regression test for SERVER_TERMINATED precedence over retry (#70774)
---
 .../tests/task_sdk/execution_time/test_supervisor.py    | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/task-sdk/tests/task_sdk/execution_time/test_supervisor.py 
b/task-sdk/tests/task_sdk/execution_time/test_supervisor.py
index f777b2d5a8a..0741a71395e 100644
--- a/task-sdk/tests/task_sdk/execution_time/test_supervisor.py
+++ b/task-sdk/tests/task_sdk/execution_time/test_supervisor.py
@@ -160,6 +160,7 @@ from airflow.sdk.execution_time.comms import (
     _ResponseFrame,
 )
 from airflow.sdk.execution_time.supervisor import (
+    SERVER_TERMINATED,
     ActivitySubprocess,
     InProcessSupervisorComms,
     InProcessTestSupervisor,
@@ -3990,6 +3991,22 @@ class TestSignalRetryLogic:
 
         assert mock_watched_subprocess.final_state == 
TaskInstanceState.UP_FOR_RETRY
 
+    def test_server_terminated_takes_precedence_over_retry(self, mocker):
+        """Test that a server-terminated task stays SERVER_TERMINATED even 
with retries enabled."""
+        mock_watched_subprocess = ActivitySubprocess(
+            process_log=mocker.MagicMock(),
+            id=TI_ID,
+            pid=12345,
+            stdin=mocker.Mock(),
+            process=mocker.Mock(),
+            client=mocker.Mock(),
+        )
+        mock_watched_subprocess._exit_code = 1
+        mock_watched_subprocess._should_retry = True
+        mock_watched_subprocess._terminal_state = SERVER_TERMINATED
+
+        assert mock_watched_subprocess.final_state == SERVER_TERMINATED
+
     def test_non_signal_exit_code_without_retry_goes_to_failed(self, mocker):
         """Test that non-signal exit codes without retries enabled go to 
FAILED."""
         mock_watched_subprocess = ActivitySubprocess(

Reply via email to