From f12303e3ab7bced6aff36b2e4619fae6130128bb Mon Sep 17 00:00:00 2001 From: sergio Date: Sat, 8 Aug 2026 09:04:20 -0400 Subject: [PATCH] =?UTF-8?q?docs:=20SDD=2023=20=C2=A78=20=E2=80=94=20el=20o?= =?UTF-8?q?rden=20de=20las=20tandas=20importa=20m=C3=A1s=20que=20su=20tama?= =?UTF-8?q?=C3=B1o,=20y=20ADR=200012=20acaba=20de=20morder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Activar strip_debug en tres bibliotecas BASE (expat, zstd, ncurses) re-hasheó 54 recetas en cascada, incluida la cadena wlroots/sway. Tocar cincuenta HOJAS no habría costado ninguna reconstrucción extra. El desplegador ordena alfabéticamente y debe ordenar por profundidad en el grafo, de hoja a raíz. Y ADR 0012 —la carrera del árbol de fuentes, 'pendiente sin decidir' desde hace meses— acaba de morder: adwaita-hello murió con error 39 (Directory not empty). Una reconstrucción masiva es exactamente el escenario que lo dispara, así que decidirlo deja de ser opcional si la etapa 4 va a correr en paralelo. Más dos lecciones de operación: un drenaje largo no puede vivir dentro del ssh (se cortó a las 14 de 54), y la flota efímera reusa IPs, así que la clave de host cambia y cada conexión grita MITM — conviene que farm-up lo limpie solo. Co-Authored-By: Claude Opus 5 (1M context) --- docs/23-plan-rehasheo.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/docs/23-plan-rehasheo.md b/docs/23-plan-rehasheo.md index efc54b0a..17757eed 100644 --- a/docs/23-plan-rehasheo.md +++ b/docs/23-plan-rehasheo.md @@ -279,3 +279,37 @@ Este documento se equivocó tres veces seguidas y las tres se corrigieron midien **Un test hay que diseñarlo contra la pregunta, no contra lo que es fácil de comparar.** Comparar con lo que hay en el store es cómodo; comparar dos builds de hoy es lo que contesta. + +--- + +## 8. Etapa 4 en marcha — y la lección que faltaba en el plan: **el orden importa más que la tanda** + +La primera tanda activó `strip_debug` en `expat`, `zstd` y `ncurses`. Son **bibliotecas base**, así +que re-hashearon en cascada **54 recetas**, incluida la cadena `wlroots`/`sway` sellada la noche +anterior. No se pierde nada —los artefactos viejos siguen en el store y en el respaldo, y las recetas +están en git— pero el perfil `escritorio-sway` deja de cerrar 121/121 hasta reconstruirlas. + +⇒ **La tanda correcta no es «las 25 siguientes por orden alfabético», sino las HOJAS del grafo +primero, o un nivel entero de una vez con la granja arriba.** Tocar tres bibliotecas base costó 54 +reconstrucciones; tocar cincuenta hojas no habría costado ninguna extra. `scripts/desplegar-strip.sh` +toma las candidatas en orden alfabético y eso hay que cambiarlo: debe ordenar por profundidad en el +grafo, de hoja a raíz. + +### Operación: dos cosas que cuestan una corrida cada una +- **Un drenaje largo NO puede vivir dentro del `ssh`.** La primera pasada se cortó a las 14 de 54 al + caerse la sesión. Va con `nohup` en el worker, siempre. +- **La flota efímera reusa IPs** ⇒ la clave de host cambia y cada conexión grita MITM. Se limpia con + `ssh-keygen -R `, pero con workers que van y vienen esto se repetirá: conviene que `farm-up` lo + haga solo al crear la máquina. + +### Fallos de la primera pasada — ninguno nuevo, y uno que ya estaba avisado +| receta | causa | +|---|---| +| `dwarves` | el muro de libdw/musl, ya documentado como frente propio | +| `dbus` | «Unhandled python exception» de meson | +| `adwaita-hello` | **error 39 (Directory not empty)** — la carrera del árbol de fuentes del **ADR 0012** | + +El último merece subrayado: **ADR 0012 lleva meses «pendiente sin decidir» y acaba de morder**. Dos +builds de la misma dep se pisan el árbol de `work/sources` y lo dejan a medias. Una campaña de +reconstrucción masiva es exactamente el escenario que lo dispara, así que decidirlo deja de ser +opcional si la etapa 4 va a correr en paralelo.