farm-up: los comentarios nuevos llevaban backticks DENTRO de la cadena que va por SSH

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) <noreply@anthropic.com>
This commit is contained in:
2026-08-09 10:35:08 -04:00
co-authored by Claude Opus 5
parent 68d8ae0aa9
commit 4c06eaef88
+5 -5
View File
@@ -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.