Skip to content

Commit 347a3fb

Browse files
committed
fix timeouts
1 parent edeb601 commit 347a3fb

1 file changed

Lines changed: 12 additions & 20 deletions

File tree

playbooks/dev/two-way-network-split.yaml

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: "Two-Way Network Split Finality Test"
33
description: |
44
Splits a Kurtosis-launched devnet into two halves through the disruptoor
55
HTTP API, verifies that finality stops for two epochs, heals the split,
6-
waits two more epochs, and verifies finality recovers.
6+
then polls for finality recovery for up to recoveryEpochs (default 3).
77
88
The participant groups are computed dynamically from the assertoor client
99
pool: nodes 1..floor(N/2) form the left half, nodes floor(N/2)+1..N form
@@ -14,14 +14,14 @@ description: |
1414
(default `http://disruptoor:7700`).
1515
version: 1.0.0
1616
tags: [disruptoor, kurtosis, finality, network-split, consensus]
17-
timeout: 45m
17+
timeout: 120m
1818
config:
1919
disruptoorUrl: "http://disruptoor:7700"
2020
minClientCount: 2
2121
partitionClientTypes: ["execution", "beacon"]
2222
splitObservationEpochs: 2
23-
recoveryEpochs: 2
24-
recoveredMaxUnfinalizedEpochs: 3
23+
recoveryEpochs: 3
24+
recoveredMaxUnfinalizedEpochs: 6
2525
tasks:
2626
- name: get_consensus_specs
2727
id: get_specs
@@ -46,7 +46,7 @@ tasks:
4646
- name: check_clients_are_healthy
4747
id: client_check
4848
title: "Wait for all devnet clients to be healthy"
49-
timeout: 10m
49+
timeout: 20m
5050
configVars:
5151
minClientCount: "minClientCount"
5252
config:
@@ -55,7 +55,7 @@ tasks:
5555
- name: check_consensus_finality
5656
id: initial_finality
5757
title: "Wait for initial finality"
58-
timeout: 20m
58+
timeout: 40m
5959
config:
6060
minFinalizedEpochs: 2
6161
maxUnfinalizedEpochs: 3
@@ -116,6 +116,7 @@ tasks:
116116
117117
- name: check_consensus_slot_range
118118
title: "Wait split observation epochs with the split active"
119+
timeout: 15m
119120
configVars:
120121
minSlotNumber: "| (.tasks.split_start.outputs.currentSlot | tonumber) + ((.splitObservationEpochs | tonumber) * (.tasks.get_specs.outputs.specs.SLOTS_PER_EPOCH | tonumber))"
121122

@@ -139,20 +140,9 @@ tasks:
139140
curl -fsS -X POST "${disruptoor_url}/v1/state/clear"
140141
curl -fsS "${disruptoor_url}/v1/state" | jq -e '(.partitions | length) == 0 and (.shaping | length) == 0' >/dev/null
141142
142-
- name: check_consensus_slot_range
143-
id: recovery_start
144-
title: "Capture recovery start slot"
145-
timeout: 1m
146-
config: {}
147-
148-
- name: check_consensus_slot_range
149-
title: "Wait recovery epochs after clearing the split"
150-
configVars:
151-
minSlotNumber: "| (.tasks.recovery_start.outputs.currentSlot | tonumber) + ((.recoveryEpochs | tonumber) * (.tasks.get_specs.outputs.specs.SLOTS_PER_EPOCH | tonumber))"
152-
153143
- name: check_consensus_finality
154-
title: "Check finality recovered"
155-
timeout: 4m
144+
title: "Poll for finality recovery (succeeds as soon as unfinalized epochs drop)"
145+
timeout: 25m
156146
configVars:
157147
maxUnfinalizedEpochs: "recoveredMaxUnfinalizedEpochs"
158148

@@ -166,4 +156,6 @@ cleanupTasks:
166156
command: |
167157
set -euo pipefail
168158
disruptoor_url=$(echo "$DISRUPTOOR_URL" | jq -r .)
169-
curl -fsS -X POST "${disruptoor_url}/v1/state/clear" || true
159+
if ! curl -fsS -X POST "${disruptoor_url}/v1/state/clear"; then
160+
echo "WARNING: failed to clear disruptoor state during cleanup; devnet may still be partitioned" >&2
161+
fi

0 commit comments

Comments
 (0)