From 1d1d2feb339b09bf29a468a56b864579fe259db9 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Tue, 6 Oct 2026 17:45:28 +0000 Subject: [PATCH] restart-hand-nodes.sh: stop()'s pid filter never fails the pipeline (set -e ended the script before node 1 at 17:43Z) Co-Authored-By: Claude Fable 5.1 --- infra/devnet/restart-hand-nodes.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra/devnet/restart-hand-nodes.sh b/infra/devnet/restart-hand-nodes.sh index a8dcc6396..ae382ce5a 100755 --- a/infra/devnet/restart-hand-nodes.sh +++ b/infra/devnet/restart-hand-nodes.sh @@ -25,7 +25,7 @@ cp -p "$OV" "$OV.prev-$(date -u +%Y%m%dT%H%M%SZ)" 2>/dev/null || true printf '%s\n' "$OVJSON" > "$OV" # the pid is an igneumd process, never a shell whose command line carries the pattern's text (6 October 2026: pgrep -f matched the # caller's own zsh -c "..." and the stop waited 11 minutes on it) -stop() { local p; p=$(for c in $(pgrep -f "$1" || true); do [ "$(ps -o comm= -p "$c" 2>/dev/null | xargs basename 2>/dev/null)" = igneumd ] && echo "$c"; done | head -1); if [ -n "$p" ]; then kill -INT "$p"; while kill -0 "$p" 2>/dev/null; do sleep 1; done; fi; } +stop() { local p; p=$( { for c in $(pgrep -f "$1" || true); do if [ "$(ps -o comm= -p "$c" 2>/dev/null | xargs basename 2>/dev/null)" = igneumd ]; then echo "$c"; fi; done; true; } | head -1 ); if [ -n "$p" ]; then kill -INT "$p"; while kill -0 "$p" 2>/dev/null; do sleep 1; done; fi; } # the filter never fails the pipeline (17:43Z: a trailing caffeinate pid made the loop exit 1 and set -e ended the script before node 1) lines() { sleep 10; grep -E "Calibrated v1 fees from the override file|Fees on igneum-devnet|Consensus params digest" "$1" | tail -3 || true; } # the observer first stop "igneumd --devnet.*observer-v4"