Commit 2e0ea48
common: guard the reset-path re-fetch in sync_clone so an offline blip still exits EX_TEMPFAIL under set -e
The reset-failure recovery path called journal_fetch as a bare statement
(journal_fetch "$dir"; rc=$?). When the hard reset fails AND the re-fetch
also fails (the classic connectivity outage), the bare call is itself a
set -e exit: every set -e caller (claim-job, complete-job, all producers)
died with the raw fetch rc before _fetch_stderr_is_offline could classify
the blip and take the clean exit $GARDEN_OFFLINE_RC (75) tick-skip —
re-introducing the exact per-blip FATAL the first fetch path was hardened
against. Capture the rc through an if, the same guarded idiom as the
first fetch.
Repro (bare set -e caller; fetch#1 ok, reset fails, re-fetch offline):
BEFORE exit rc=128 raw, no classification; AFTER exit 75 with
"offline on reset; skipping tick". fetch-timeout-test.sh 12/12 and
stale-lock-test.sh 7/7 pass.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1 parent 913cfc8 commit 2e0ea48
1 file changed
Lines changed: 5 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2001 | 2001 | | |
2002 | 2002 | | |
2003 | 2003 | | |
2004 | | - | |
| 2004 | + | |
| 2005 | + | |
| 2006 | + | |
| 2007 | + | |
| 2008 | + | |
2005 | 2009 | | |
2006 | 2010 | | |
2007 | 2011 | | |
| |||
0 commit comments