docs: SDD 23 §8 — el orden de las tandas importa más que su tamaño, y ADR 0012 acaba de morder
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) <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
**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.
|
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 <ip>`, 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.
|
||||||
|
|||||||
Reference in New Issue
Block a user