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.