From b664ae373d70c7004d70d5874490c469043955a2 Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Wed, 8 Jul 2026 08:30:58 +0200 Subject: [PATCH] fix(screenshots): give PF_SHOT_READY headroom for the cold first scene MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The linux-client-screenshots job red-lit on a single scene — the first one (`hosts`) — with "client never signalled PF_SHOT_READY", while the other six captured fine (~1-2s each). Root cause: the first client launch pays a large one-time cold-start under software rendering (llvmpipe GL-shader + fontconfig cache build, plus first-run client-identity generation into the shared scratch HOME), ~25s on the CI runner; the relm4 shell rebuilt in 0.8.3 tipped it just over the 20s PF_SHOT_READY cap. Every scene rendered correctly — the cap was simply too tight for cold start. Raise it to ~60s (warm scenes still break out in ~1-2s, so the happy path is unchanged). Best-effort job; it never blocked the release, but now it goes green. Co-Authored-By: Claude Opus 4.8 (1M context) --- clients/linux/tools/screenshots.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/clients/linux/tools/screenshots.sh b/clients/linux/tools/screenshots.sh index 6979e75c..b3208624 100755 --- a/clients/linux/tools/screenshots.sh +++ b/clients/linux/tools/screenshots.sh @@ -113,7 +113,12 @@ for scene in "${SCENES[@]}"; do "$BIN" >"$WORK/log" 2>&1 & pid=$! ready=0 - for _ in $(seq 1 200); do # up to ~20s + # Up to ~60s: a warm scene signals in ~1-2s, but the FIRST launch pays a large one-time + # cold-start under software rendering (llvmpipe GL-shader + fontconfig cache build, plus + # first-run client-identity generation into the shared scratch HOME) that can run ~25s on a + # loaded CI runner. A 20s cap tripped exactly one scene (the first) even though every scene + # rendered fine — give it headroom instead of red-lighting the whole capture on cold start. + for _ in $(seq 1 600); do if grep -q "PF_SHOT_READY" "$WORK/log"; then ready=1 break