Skip to content

Commit 664821d

Browse files
committed
Handle timeout explicitly
1 parent cc1fb87 commit 664821d

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

src/redis_release/bht/behaviours.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,7 @@ def update(self) -> Status:
481481
self.feedback_message = (
482482
f"Timed out: {elapsed:.1f}s of {self.timeout_seconds}s"
483483
)
484+
self.workflow.ephemeral.wait_for_completion_timed_out = True
484485
return Status.FAILURE
485486

486487
# Switch to sleep task

src/redis_release/bht/composites.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -346,8 +346,10 @@ def __init__(
346346

347347
super().__init__(
348348
name,
349+
# Don't restart if we already triggered the workflow or if ref is not set or workflow has timed out
349350
condition=lambda: workflow.ephemeral.trigger_workflow is not None
350-
or package.meta.ref is None,
351+
or package.meta.ref is None
352+
or workflow.ephemeral.wait_for_completion_timed_out is True,
351353
child=reset_package_state_running,
352354
guard_status=Status.FAILURE,
353355
log_prefix=log_prefix,
@@ -383,8 +385,10 @@ def __init__(
383385

384386
super().__init__(
385387
name,
388+
# Don't restart if we already triggered the workflow or if ref is not set or workflow has timed out
386389
condition=lambda: workflow.ephemeral.trigger_workflow is not None
387-
or package_meta.ref is None,
390+
or package_meta.ref is None
391+
or workflow.ephemeral.wait_for_completion_timed_out is True,
388392
child=reset_workflow_state_running,
389393
guard_status=Status.FAILURE,
390394
log_prefix=log_prefix,

src/redis_release/bht/state.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ class WorkflowEphemeral(BaseModel):
7777
trigger_workflow: Optional[common.Status] = None
7878
wait_for_completion: Optional[common.Status] = None
7979
wait_for_completion_message: Optional[str] = None
80+
wait_for_completion_timed_out: Optional[bool] = False
8081
download_artifacts: Optional[common.Status] = None
8182
extract_artifact_result: Optional[common.Status] = None
8283

0 commit comments

Comments
 (0)