chore(metodo): un latest es una bomba con temporizador de reinicio
Falla la proxima vez que el proceso arranque, meses despues y por una causa ajena. Y cuanto mas estable es el proceso, mas grande es la divergencia acumulada: la estabilidad no reduce el riesgo, lo carga. Sesion: superadmin Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
d42191d615
commit
b049cf25bc
@ -1,4 +1,4 @@
|
||||
f97b970ed6f4d89af3e040938cb2f01f368db436905d0ae9bf1732b0083a9ec0 metodo.md
|
||||
993b3b47d0b199cac89d32aea0d7cda0ef8c5c341c137f78586ea68fbce9b871 metodo.md
|
||||
a2418f334e07ea47dee15db713f25bb619383e3ae41facb91ad07626fc440cec bin/metodo
|
||||
f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md
|
||||
cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md
|
||||
|
||||
@ -525,6 +525,15 @@ deducir**. Si no lo miraba, el artefacto es un testigo de la avería, no del sis
|
||||
COPIA que usa la gente está rota.** Son dos preguntas distintas —*«¿qué despliega ArgoCD?»* y
|
||||
*«¿qué le pasa a quien clona esto?»*— y **ninguna receta contesta las dos**. *(Cicatriz
|
||||
2026-08-06: `pq-secret.sh` estaba en **CRLF en el worktree** y así ni arranca —`set -uo
|
||||
⛔ **Y EL TESTIGO DE EOL HAY QUE VALIDARLO CON UN FICHERO QUE SEPAS QUE ES CRLF, porque el obvio
|
||||
MIENTE.** `grep -c $'\r'` **es ciego al CR en algunos shells**: devuelve **0** sobre un fichero que
|
||||
`od -c` demuestra lleno de `\r\n`. ⇒ Y lo peor: **acertó tres veces seguidas antes de fallar** — los
|
||||
tres ficheros eran LF de verdad. *Lo que funciona por casualidad está roto*, aplicado a un testigo.
|
||||
*(Cicatriz 2026-09-01. Se destapó porque un `git diff` marcaba **48 líneas cambiadas** donde el cambio
|
||||
real eran **13**, con líneas idénticas en `-` y `+`. Y el segundo intento también mintió: daba **9733
|
||||
CR en 268 líneas**, un número imposible **que sólo se ve si compruebas la aritmética**.)*
|
||||
⇒ **Lo que discrimina**: `od -c`, o `tr -dc '\r' | wc -c`. **Nunca `grep $'\r'`.** Y **guarda un
|
||||
fichero CRLF conocido** como control positivo del testigo.
|
||||
pipefail\r`—, o sea que con `core.autocrlf=true` un clon en Windows deja **todos** los bancos
|
||||
muertos. El censo no lo vio porque medía —bien— sobre un `git archive` en LF: **la receta correcta
|
||||
tapó el defecto que la rodeaba**. Se cosió con un `.gitattributes`.)* ⇒ Cuando elijas dónde medir,
|
||||
@ -905,6 +914,27 @@ rojo. No afirmes en verde algo que **dejó de ser cierto**.
|
||||
|
||||
El plan escrito puede partir de una foto obsoleta o de otro entorno.
|
||||
|
||||
⛔⛔ **UN `latest` NO ES UNA VERSIÓN: ES UNA BOMBA CON TEMPORIZADOR DE REINICIO.** No falla cuando
|
||||
alguien mueve el tag — **falla la próxima vez que el proceso arranque**, que puede ser **meses después
|
||||
y por una causa ajena al sistema**.
|
||||
*(Cicatriz 2026-09-01: un electricista mete un pico de tensión, salta un diferencial y reinicia **un**
|
||||
servidor. Un motor de base de datos que llevaba **173 días** corriendo su versión vieja **en memoria**
|
||||
tira la imagen nueva al rearrancar y muere: los datos en disco eran de la **9.6**, la imagen de hoy la
|
||||
**26.7**. **El defecto se plantó el día que se movió el tag; el corte sólo lo reveló.**)*
|
||||
⇒ ⭐ **Y el corolario, que invierte la intuición: CUANTO MÁS ESTABLE ES EL PROCESO, MÁS GRANDE ES LA
|
||||
DIVERGENCIA ACUMULADA.** 173 días separaron una versión de otra. **La estabilidad no reduce el riesgo:
|
||||
lo carga.** Un servicio que lleva medio año sin reiniciarse **no es el más seguro: es el que más lejos
|
||||
está de lo que arrancaría hoy**.
|
||||
⇒ Y añade algo que *«al encender un camino nunca recorrido salen defectos viejos»* no dice: **el
|
||||
disparador puede ser AJENO** — nadie desplegó, nadie tocó nada, y aun así explotó.
|
||||
⛔ **Por eso el censo no es opcional**: en el mismo cluster había **una gemela idéntica** —mismo
|
||||
`latest`, **mismo digest**, misma base de datos— **viva sólo porque su nodo no se reinició**, más media
|
||||
docena de tags móviles en producción. ⇒ **Cuando encuentres uno, cuenta los demás ANTES de celebrar el
|
||||
arreglo**: la explosión te dice que hay un campo de minas, no que hubiera una.
|
||||
⇒ **El gesto**: pinear a la versión **que los datos ya tienen** —sacada del sistema, no supuesta— y
|
||||
**comprobar que ese tag existe** antes de aplicarlo, para no cambiar un fallo por otro. Y el porqué,
|
||||
**dentro del propio manifiesto**, o alguien lo devuelve a `latest`.
|
||||
|
||||
⛔⛔ **UN ÁRBITRO QUE DEPENDE FÍSICAMENTE DE UNO DE LOS DOS LADOS NO ES UN ÁRBITRO.** Un diseño de
|
||||
tolerancia por sitios —dos y dos, más un tercero que decide— **puede ser correcto en la capa que lo
|
||||
declara y no sostenerse, porque LA RED NO ACOMPAÑA AL DISEÑO.**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user