diff --git a/providers/edge3/src/airflow/providers/edge3/cli/worker.py b/providers/edge3/src/airflow/providers/edge3/cli/worker.py index f5396127219eb..80d120a99441f 100644 --- a/providers/edge3/src/airflow/providers/edge3/cli/worker.py +++ b/providers/edge3/src/airflow/providers/edge3/cli/worker.py @@ -291,7 +291,7 @@ def _run_job_via_supervisor(self, workload: ExecuteTask, results_queue: Queue) - except Exception as e: logger.exception("Task execution failed") results_queue.put(e) - return 1 + sys.exit(1) def _launch_job(self, workload: ExecuteTask) -> tuple[Process, Queue[Exception]]: # Improvement: Use frozen GC to prevent child process from copying unnecessary memory diff --git a/providers/edge3/tests/unit/edge3/cli/test_worker.py b/providers/edge3/tests/unit/edge3/cli/test_worker.py index 62565cdf98cac..d62380352e91b 100644 --- a/providers/edge3/tests/unit/edge3/cli/test_worker.py +++ b/providers/edge3/tests/unit/edge3/cli/test_worker.py @@ -231,9 +231,10 @@ async def test_supervise_launch_fail( mock_supervise.side_effect = Exception("Supervise failed") edge_job = worker_with_job.jobs.pop().edge_job q = mock.MagicMock() - result = worker_with_job._run_job_via_supervisor(edge_job.command, q) + with pytest.raises(SystemExit) as exc_info: + worker_with_job._run_job_via_supervisor(edge_job.command, q) - assert result == 1 + assert exc_info.value.code == 1 q.put.assert_called_once() @patch("airflow.providers.edge3.cli.worker.jobs_fetch")