From 535c862c3dd75461e86b6794c36525f306482af6 Mon Sep 17 00:00:00 2001 From: Shailesh Padave Date: Tue, 7 Jul 2026 13:13:14 +0530 Subject: [PATCH] fix: lease heartbeat 500 error and test fork override - Send IN_PROGRESS status in lease extension heartbeats to prevent NullPointerException on the server when getStatus() is called - Remove set_start_method('fork', force=True) from integration test that was overriding the SDK's spawn default for the whole test session and causing SIGSEGV crashes on macOS Found during macOS spawn-safety testing (Python 3.11/3.13/3.14). --- src/conductor/client/automator/lease_tracker.py | 2 ++ tests/integration/workflow/test_workflow_execution.py | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/conductor/client/automator/lease_tracker.py b/src/conductor/client/automator/lease_tracker.py index f98b5253..4c43bde4 100644 --- a/src/conductor/client/automator/lease_tracker.py +++ b/src/conductor/client/automator/lease_tracker.py @@ -20,6 +20,7 @@ from typing import Any, Dict, Optional from conductor.client.http.models.task_result import TaskResult +from conductor.client.http.models.task_result_status import TaskResultStatus logger = logging.getLogger(__name__) @@ -196,6 +197,7 @@ def _send_heartbeat(info: LeaseInfo) -> None: task_id=info.task_id, workflow_instance_id=info.workflow_instance_id, extend_lease=True, + status=TaskResultStatus.IN_PROGRESS, ) for attempt in range(LEASE_EXTEND_RETRY_COUNT): try: diff --git a/tests/integration/workflow/test_workflow_execution.py b/tests/integration/workflow/test_workflow_execution.py index e178aad4..2583ca3f 100644 --- a/tests/integration/workflow/test_workflow_execution.py +++ b/tests/integration/workflow/test_workflow_execution.py @@ -1,6 +1,5 @@ import logging import time -from multiprocessing import set_start_method from time import sleep from conductor.client.automator.task_handler import TaskHandler @@ -45,7 +44,6 @@ def run_workflow_execution_tests(configuration: Configuration, workflow_executor scan_for_annotated_workers=True, import_modules=['tests.integration.resources.worker.python.python_worker'] ) - set_start_method('fork', force=True) task_handler.start_processes() try: test_get_workflow_by_correlation_ids(workflow_executor)