Skip to content

Commit 0a59492

Browse files
author
Andrei Neagu
committed
restore timeout for stopping services
1 parent 3783629 commit 0a59492

File tree

3 files changed

+14
-2
lines changed
  • packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/dynamic_scheduler
  • services/dynamic-scheduler

3 files changed

+14
-2
lines changed

packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/dynamic_scheduler/services.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,13 @@ async def stop_dynamic_service(
9090
rabbitmq_rpc_client: RabbitMQRPCClient,
9191
*,
9292
dynamic_service_stop: DynamicServiceStop,
93+
timeout_s: NonNegativeInt,
9394
) -> None:
9495
result = await rabbitmq_rpc_client.request(
9596
DYNAMIC_SCHEDULER_RPC_NAMESPACE,
9697
_RPC_METHOD_NAME_ADAPTER.validate_python("stop_dynamic_service"),
9798
dynamic_service_stop=dynamic_service_stop,
99+
timeout_s=timeout_s,
98100
)
99101
assert result is None # nosec
100102

services/dynamic-scheduler/src/simcore_service_dynamic_scheduler/api/frontend/routes_external_scheduler/_service.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
)
1111
from settings_library.utils_service import DEFAULT_FASTAPI_PORT
1212

13+
from ....core.settings import ApplicationSettings
1314
from ....services.rabbitmq import get_rabbitmq_rpc_client
1415
from ....services.service_tracker import get_tracked_service, remove_tracked_service
1516
from .._utils import get_parent_app, get_settings
@@ -114,6 +115,8 @@ async def service_stop(node_id: NodeID):
114115
ui.notify(f"Could not stop service {node_id}. Was not abel to find it")
115116
return
116117

118+
settings: ApplicationSettings = parent_app.state.settings
119+
117120
assert service_model.user_id # nosec
118121
assert service_model.project_id # nosec
119122

@@ -126,6 +129,7 @@ async def service_stop(node_id: NodeID):
126129
simcore_user_agent="",
127130
save_state=True,
128131
),
132+
timeout_s=int(settings.DYNAMIC_SCHEDULER_STOP_SERVICE_TIMEOUT.total_seconds()),
129133
)
130134

131135

services/dynamic-scheduler/tests/unit/api_rpc/test_api_rpc__services.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,9 @@ def _get_rpc_stop(with_node_id: NodeID) -> DynamicServiceStop:
432432

433433
# service was stopped
434434
result = await services.stop_dynamic_service(
435-
rpc_client, dynamic_service_stop=_get_rpc_stop(node_id)
435+
rpc_client,
436+
dynamic_service_stop=_get_rpc_stop(node_id),
437+
timeout_s=5,
436438
)
437439
assert result is None
438440

@@ -441,12 +443,15 @@ def _get_rpc_stop(with_node_id: NodeID) -> DynamicServiceStop:
441443
await services.stop_dynamic_service(
442444
rpc_client,
443445
dynamic_service_stop=_get_rpc_stop(node_id_not_found),
446+
timeout_s=5,
444447
)
445448

446449
# service awaits for manual intervention
447450
with pytest.raises(ServiceWaitingForManualInterventionError):
448451
await services.stop_dynamic_service(
449-
rpc_client, dynamic_service_stop=_get_rpc_stop(node_id_manual_intervention)
452+
rpc_client,
453+
dynamic_service_stop=_get_rpc_stop(node_id_manual_intervention),
454+
timeout_s=5,
450455
)
451456

452457

@@ -486,6 +491,7 @@ async def test_stop_dynamic_service_serializes_generic_errors(
486491
simcore_user_agent=simcore_user_agent,
487492
save_state=save_state,
488493
),
494+
timeout_s=5,
489495
)
490496

491497

0 commit comments

Comments
 (0)