From d8386e43bec90eedd77aef0a99f498ae193bac1f Mon Sep 17 00:00:00 2001 From: rob Date: Fri, 31 Jul 2026 06:55:48 +0000 Subject: [PATCH] backup-node: torn-backup floor guards the main data volume only A 0G sidecar volume (ronin eigenda-proxy) FATAL'd the whole backup before the manifest was written - verify found no new backup and the refresh pipeline's bench-retire escalated 4 cycles in a row, head-of-line blocking the single refresh lane. Sidecars are legitimately tiny; the <1G fail-closed floor now applies only to the main data volume (key == compose basename). Co-Authored-By: Claude Fable 5 --- backup-node.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/backup-node.sh b/backup-node.sh index 4a4ac19c..db043eaf 100755 --- a/backup-node.sh +++ b/backup-node.sh @@ -157,8 +157,15 @@ for key in $keys; do folder_size_gb=$(printf "%.0f" "$folder_size") if (( folder_size_gb < 1 )) && [[ "$FORCE_SMALL" != true ]]; then - echo "FATAL: existing datadir too small for backup (${folder_size_gb}G at $source_folder); use --force if intentional" >&2 - exit 1 + # The torn-backup floor applies to the MAIN data volume only (key == compose + # basename). Sidecar volumes (eigenda-proxy, configs, ...) are legitimately + # tiny — a 0G sidecar aborting the whole backup left no manifest and blocked + # the refresh lane on every ronin bench-retire (4 cycles, 2026-07). + if [[ "$key" == "$(basename "$compose_name")" ]]; then + echo "FATAL: existing datadir too small for backup (${folder_size_gb}G at $source_folder); use --force if intentional" >&2 + exit 1 + fi + echo "NOTE: sidecar volume rpc_$key is ${folder_size_gb}G — allowing small backup (floor guards the main data volume only)" fi timestamp=$(date +'%Y-%m-%d-%H-%M-%S')