From 4c06eaef889c6ed597b4e29ba682403dd365c2d9 Mon Sep 17 00:00:00 2001 From: sergio Date: Sun, 9 Aug 2026 10:35:08 -0400 Subject: [PATCH] farm-up: los comentarios nuevos llevaban backticks DENTRO de la cadena que va por SSH MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El bloque del volumen es una cadena entrecomillada que se manda al worker, así que un backtick ahí no es tipografía: es SUSTITUCIÓN DE ÓRDENES. Mis comentarios de la commit anterior citaban `volume attach` y `blkid` con backticks ⇒ la shell intentó EJECUTAR «volume attach» («volume: command not found») y a partir de ahí el resto del bloque se mandó mutilado: mkfs.ext4 sin dispositivo, mountpoint sin argumento. Por eso los comentarios originales de ese mismo bloque escapan los backticks con \`. Yo escribí los míos con el estilo del resto del fichero, que es correcto FUERA de la cadena y venenoso dentro. Arreglado quitándolos: en un comentario que viaja por SSH, la comilla no vale lo que cuesta. El volumen no sufrió: sigue con su filesystem del 17 de julio y montado. Co-Authored-By: Claude Opus 5 (1M context) --- scripts/farm/farm-up.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/farm/farm-up.sh b/scripts/farm/farm-up.sh index 7fd929dc..de500e0c 100755 --- a/scripts/farm/farm-up.sh +++ b/scripts/farm/farm-up.sh @@ -97,10 +97,10 @@ for k in $(seq 1 "$N"); do hcloud volume attach --server "$name" "$VOL_NAME" >/dev/null 2>&1 || true dev="/dev/disk/by-id/scsi-0HC_Volume_$vid" $SSH root@"$ip" "mkdir -p /mnt/cosecha - # ⚠ El `mkfs.ext4 -F` de rescate SÓLO si el dispositivo no tiene filesystem. La versión previa - # formateaba ante CUALQUIER fallo de montaje —incluida la carrera normal entre `volume attach` + # ⚠ El mkfs.ext4 -F de rescate SÓLO si el dispositivo no tiene filesystem. La versión previa + # formateaba ante CUALQUIER fallo de montaje —incluida la carrera normal entre volume attach # y la aparición del dispositivo— o sea que un hipo de segundos destruía el volumen entero. - # `blkid` distingue «vacío» de «no pude montarlo ahora». + # blkid distingue «vacío» de «no pude montarlo ahora». if ! mount $dev /mnt/cosecha 2>/dev/null; then if blkid $dev >/dev/null 2>&1; then echo " ✗ el volumen TIENE filesystem y no montó — NO lo formateo. Revisá a mano." >&2; exit 1 @@ -115,12 +115,12 @@ for k in $(seq 1 "$N"); do # deuda contra un store casi vacío y se pone a reconstruir media distro: en la tanda del # 2026-07-21 dio 716 recetas de deuda donde el hub medía 37. Es CAS (nombre = hash) ⇒ # fusionar es seguro por construcción: \`mv -n\` no pisa lo que el volumen ya tiene. - # ⚠ `mountpoint -q` NO ES OPCIONAL — sin él este bloque BORRA EL VOLUMEN. + # ⚠ mountpoint -q NO ES OPCIONAL — sin él este bloque BORRA EL VOLUMEN. # La guarda original sólo comprobaba «es directorio y no es symlink». Eso basta en un server # recién creado desde la golden ORIGINAL, donde /opt/hammer/store es un directorio normal. # Pero al re-snapshotear un worker (2026-08-08) la imagen se llevó también la CONFIGURACIÓN DE # MONTAJE: el server nuevo monta el volumen en /opt/hammer/store al arrancar, ANTES de que - # corra este rescate. Entonces `rm -rf $REMOTE/store` borra A TRAVÉS DEL MONTAJE y se lleva el + # corra este rescate. Entonces rm -rf $REMOTE/store borra A TRAVÉS DEL MONTAJE y se lleva el # store del volumen entero — que es justo lo que el volumen existe para proteger. # Medido: el volumen pasó de ~900 artefactos a 2. No se perdió el filesystem (lost+found es de # julio, 17 montajes): se borró el CONTENIDO.