Lift reth static-file symlink guard: op-reth v2.3.2 verified through symlink

Live test on rpc-uk-4 (unichain-mainnet pruned, 166G static_files moved to
/slowdisk + symlinked): reth healed consistency, initialized the
StaticFileProducer, and resumed committing canonical blocks - full
read/write through the symlink. The guard's premise (old reth refusing
symlinked static_files) no longer holds; pre-v2 reths fail loudly at start,
fallback is --no-slowdisk. Restores/clones of reth nodes to SLOWDISK=True
hosts now offload statics automatically (NVMe is the scarce resource).
Note: reth also has --datadir.static-files for a flag-based layout later.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
rob
2026-07-09 07:10:20 +00:00
parent d77ee75752
commit 331a9c27a8
3 changed files with 11 additions and 23 deletions

View File

@@ -543,15 +543,9 @@ main() {
# Set up cleanup trap
trap cleanup_all_ports EXIT INT TERM
# RETH GUARD: reth refuses to start when its static_files directory is a symlink.
# Match restore-volumes.sh: skip the whole /slowdisk static-file symlink offload
# for reth nodes and extract everything onto the primary disk.
if [[ "$1" == *reth* ]]; then
echo "WARNING: $1 contains 'reth' — static-file symlink offload disabled (reth broke whole-dir symlinks)"
echo " All volumes will be extracted onto the primary disk (equivalent to --no-slowdisk)"
NO_SLOWDISK=true
fi
# (RETH GUARD removed 2026-07-09: op-reth v2.3.2 verified running + WRITING through a
# symlinked static_files dir on rpc-uk-4. Pre-v2 reths that refuse symlinks fail loudly
# at start - rerun with --no-slowdisk for those.)
setup_ssh_multiplex
# Check if backup directory exists

View File

@@ -517,15 +517,9 @@ main() {
# Set up cleanup trap
trap cleanup_all_ports EXIT INT TERM
# RETH GUARD: reth refuses to start when its static_files directory is a symlink.
# Match restore-volumes.sh: skip the whole /slowdisk static-file symlink offload
# for reth nodes and extract everything onto the primary disk.
if [[ "$1" == *reth* ]]; then
echo "WARNING: $1 contains 'reth' — static-file symlink offload disabled (reth broke whole-dir symlinks)"
echo " All volumes will be extracted onto the primary disk (equivalent to --no-slowdisk)"
NO_SLOWDISK=true
fi
# (RETH GUARD removed 2026-07-09: op-reth v2.3.2 verified running + WRITING through a
# symlinked static_files dir on rpc-uk-4. Pre-v2 reths that refuse symlinks fail loudly
# at start - rerun with --no-slowdisk for those.)
setup_ssh_multiplex
# the following sysctls are critical for high-latency networks

View File

@@ -153,8 +153,10 @@ while IFS= read -r key; do
[ -d "$data_dir" ] && rm -rf "$data_dir"/*
mkdir -p "$data_dir"
# 2) obtain the manifest (fetch the sidecar .txt for remote restores) and, unless this is
# a reth node (reth dropped whole-dir static-file symlinks), pre-create the offload.
# 2) obtain the manifest (fetch the sidecar .txt for remote restores) and pre-create the
# offload. (The old reth guard is gone: op-reth v2.3.2 verified running + WRITING through
# a symlinked static_files dir on rpc-uk-4, 2026-07-09. Ancient reths that predate this
# refuse to start - symptom is loud, fix is --no-slowdisk.)
local_meta="$meta_file"
if [[ -n "$remote_source" ]]; then
local_meta="$backup_dir/$(basename "$meta_file")"
@@ -163,9 +165,7 @@ while IFS= read -r key; do
curl --ipv4 -fsS "${remote_source}${meta_file}" -o "$local_meta" 2>/dev/null || local_meta=""
fi
fi
if [[ "$1" == *reth* ]]; then
echo " reth node: static-file symlink offload disabled (reth broke whole-dir symlinks)"
elif [ -n "$local_meta" ]; then
if [ -n "$local_meta" ]; then
prep_static_offload "$key" "$local_meta" "$data_dir" "$newest_file"
fi