respaldo: .dmerge tumbó la subida 40 veces seguidas y el mensaje nunca lo dijo
El respaldo se detuvo en 79 G de 127 G con «40 intentos y sigue cayéndose». El código era 23 («some files/attrs were not transferred»), que está en la lista de reintentables — así que el bucle lo reintentó cuarenta veces contra la misma pared y se rindió. LA CAUSA, al mirar los errores de verdad en vez del código de salida: todos eran rutas `/home/hammer/store/.dmerge/...`. Son directorios TRANSITORIOS de fusión del store, que aparecen y desaparecen mientras hammer sella. rsync los empieza a copiar, se esfuman a media transferencia, y falla. `cosecha-cron.sh` ya los excluía; este script no, y ésa era toda la diferencia. ⇒ Añadido `--exclude /.dmerge`. Y una lección para el propio bucle de reintentos: **un error reintentable que se repite 40 veces no es un corte de red, es algo estructural**. Cuarenta reintentos idénticos deberían haber gritado «esto no se arregla esperando» en vez de agotarse en silencio. Queda anotado; el bucle todavía no distingue «se cayó una vez» de «falla siempre igual». De paso, `appstream` —la única de las cinco del split que se perdió al borrarse el worker— se reconstruyó en el hub: 18 M, 0 secciones .debug_. Las cinco quedan consistentes (hash vigente con artefacto presente): bison 3M · appstream 18M · zstd 2M · expat 1M · ncurses 2M. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -64,7 +64,15 @@ SECO=""
|
||||
SSH_CMD="ssh -4 -p $SB_PORT -i $KEY -o StrictHostKeyChecking=accept-new -o ServerAliveInterval=30"
|
||||
|
||||
# Opciones comunes. `--partial-dir` es lo que hace el respaldo continuable a mitad de fichero.
|
||||
RS="rsync -a --partial-dir=.rsync-partial --info=progress2 -z --compress-choice=zstd --compress-level=3"
|
||||
# `--exclude /.dmerge`: son directorios TRANSITORIOS de fusión del store — aparecen y desaparecen
|
||||
# mientras hammer sella. rsync los empieza a copiar, se esfuman a media transferencia y devuelve 23
|
||||
# («some files/attrs were not transferred»). Como 23 está en la lista de reintentables, el bucle los
|
||||
# reintentó **40 veces seguidas** y se rindió con el respaldo a medias (79 G de 127 G), sin que el
|
||||
# mensaje dijera nunca que la culpa era de un directorio temporal. `cosecha-cron.sh` ya los excluía;
|
||||
# este script no, y ésa era toda la diferencia.
|
||||
# ⇒ Un error reintentable que se repite 40 veces no es un corte de red: es algo estructural. Vale la
|
||||
# pena que el bucle distinga «se cayó una vez» de «falla siempre igual».
|
||||
RS="rsync -a --partial-dir=.rsync-partial --exclude /.dmerge --info=progress2 -z --compress-choice=zstd --compress-level=3"
|
||||
|
||||
# ── REINTENTOS: EL ENLACE SE CAE, Y ESO NO ES EXCEPCIONAL ───────────────────────────────────────
|
||||
# Primera corrida real (2026-08-07): tras subir el cerebro y 2,3 G de store, murió con
|
||||
|
||||
Reference in New Issue
Block a user