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 <noreply@anthropic.com>
This commit is contained in:
rob
2026-07-31 06:55:48 +00:00
parent f68b541f58
commit d8386e43be

View File

@@ -157,8 +157,15 @@ for key in $keys; do
folder_size_gb=$(printf "%.0f" "$folder_size") folder_size_gb=$(printf "%.0f" "$folder_size")
if (( folder_size_gb < 1 )) && [[ "$FORCE_SMALL" != true ]]; then 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 # The torn-backup floor applies to the MAIN data volume only (key == compose
exit 1 # 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 fi
timestamp=$(date +'%Y-%m-%d-%H-%M-%S') timestamp=$(date +'%Y-%m-%d-%H-%M-%S')