feat(episode): TRAZA_qu-pas-en-una-frase_S20260618.R4_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: FORJA | Type: troubleshooting Summary: EPISODIO 4 — MNEMO Pipeline: Qué pasó, en una frase
This commit is contained in:
parent
e96254f020
commit
83fd264299
1 changed files with 57 additions and 0 deletions
|
|
@ -0,0 +1,57 @@
|
||||||
|
---
|
||||||
|
episode_id: "85443496-76ae-4134-be50-0f7fc4f28ef3"
|
||||||
|
puente_flat: "TRAZA_qu-pas-en-una-frase_S20260618.R4_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||||
|
session_code: "S20260618.VERIFY_FIRST_PASSPORT_FIX"
|
||||||
|
acto_dialogico: "informar"
|
||||||
|
actor_flujo: "multi_actor"
|
||||||
|
criticidad_aegis: "low"
|
||||||
|
skill_dominante: "FORJA"
|
||||||
|
fase_proyecto: "operations"
|
||||||
|
tipo_semantico: "troubleshooting"
|
||||||
|
summary_one_line: "EPISODIO 4 — MNEMO Pipeline: Qué pasó, en una frase"
|
||||||
|
source_type: "claude_code"
|
||||||
|
trust_boundary: "internal"
|
||||||
|
created_at: "2026-06-18T16:46:02.921592+00:00"
|
||||||
|
relectura_tagged: false
|
||||||
|
forgejo_commit_sha: "pending"
|
||||||
|
---
|
||||||
|
|
||||||
|
✅ **Worker forgejo ARREGLADO y verificado** — diagnóstico FORENSE + fix RELOJERO completos.
|
||||||
|
|
||||||
|
📄 Outputs del panel (D-DEBUG-L3): [CONSEJO](docs/CONSEJO_S20260618_ember_podemos_areglar_el_worker_forgejo.md) · [DECISION](docs/DECISION_S20260618_ember_podemos_areglar_el_worker_forgejo.md) — PROBATOR verdict **PASSES**.
|
||||||
|
|
||||||
|
## Qué pasó, en una frase
|
||||||
|
El proceso `outbox_dispatcher.py` arrancó el **Jun 12 19:24** con el password `plex` viejo en memoria; el password se rotó el **Jun 16** y el `.env` del worker se actualizó con el nuevo, **pero el proceso nunca se reinició** → siguió usando el viejo → `password authentication failed` durante ~2 días.
|
||||||
|
|
||||||
|
## FORENSE — cómo lo confirmé (no asumí)
|
||||||
|
| Evidencia | Resultado |
|
||||||
|
|---|---|
|
||||||
|
| `ps -o lstart` del proceso | `Fri Jun 12 19:24` (pre-rotación) |
|
||||||
|
| `.env` PG_DSN ¿autentica? | **`ENV_DSN_CONNECT: PASS`** (el .env ya tiene el password bueno) |
|
||||||
|
| dispatcher.log | 973MB de retry-loop con `authentication failed` |
|
||||||
|
| Hipótesis SCIENTIA | H1 stale-process ✅ · H2/H3/H4 falsadas |
|
||||||
|
|
||||||
|
## RELOJERO — fix mínimo + verificación triple
|
||||||
|
**Fix:** `outbox_service.sh restart` (= `systemctl --user restart ember-outbox`). Cero cambio de código, cero edición de secreto, reversible.
|
||||||
|
|
||||||
|
| Capa verificación | Resultado |
|
||||||
|
|---|---|
|
||||||
|
| A — proceso | nuevo PID 2192550, `Running`, unidad única |
|
||||||
|
| B — log post-restart | **32 commits `outbox.forgejo Committed → <hash>` en 3 min · 0 auth-fail** |
|
||||||
|
| C — backlog | `episode_outbox` pending 125 → partial 120 + processing 9 (drenando, ~10 min para completar los 125) |
|
||||||
|
|
||||||
|
La réplica a Forgejo (y de paso neo4j + nextcloud, que compartían el mismo proceso) **está viva y drenando el backlog de 19h**.
|
||||||
|
|
||||||
|
## Lección sistémica (para no repetirlo)
|
||||||
|
Un proceso long-running **no recoge un secreto rotado hasta reiniciarse**. Toda rotación de secreto debe incluir "restart de consumidores vivos" — este bug existió 2 días solo por esa omisión.
|
||||||
|
|
||||||
|
### 📍 PARA JOHN — R36
|
||||||
|
- **Hice:** FORENSE → root cause (proceso stale con password viejo, .env ya correcto) → RELOJERO fix (restart) → verificado (32 commits forgejo, 0 auth-fail, backlog drenando). CONSEJO + DECISION + PROBATOR PASSES entregados.
|
||||||
|
- **Falta:** Nada del fix. Residuales de higiene: rotar el `dispatcher.log` de 973MB; commitear los 3 docs nuevos a los remotos.
|
||||||
|
- **Mi consejo:** El worker está arreglado y la réplica drenando — puedes cerrar. Lo único que vale la pena rematar pronto es **truncar/rotar el log de 973MB** (riesgo de disco).
|
||||||
|
- **Para avanzar, elige:**
|
||||||
|
- 🟢 **A** *(recomendado)* — Cerrar: forgejo arreglado y verificado.
|
||||||
|
- 🟡 **B** — Rotar el `dispatcher.log` (973MB) + commitear los docs a los 3 remotos.
|
||||||
|
- ⚪ **C** — Otra cosa (limpiar scripts capa2_*, drenar los 54 LOOP_WRITE, etc.).
|
||||||
|
|
||||||
|
📌 PILA-PENDIENTES (R36): 🟡 `dispatcher.log` 973MB rotar · 🟡 commitear 3 docs (CONSEJO/DECISION/VERIFICACION) · 🟡 54 LOOP_WRITE local · ✅ worker forgejo arreglado+verificado
|
||||||
Loading…
Reference in a new issue