- 21 docs/*.md: audits, design notes, deployment plans, checklists, memos - Coordination: ROLES, runbooks (DGX reboot, Lea live), patches, registre, syntheses, systemd, QG template - Handoffs: 6 Codex handoff documents + README + template
5.4 KiB
5.4 KiB
Post-mortem — Panne secteur DGX 2026-06-20 (test reboot non planifié)
Auteur: Claude (infra)Date: 2026-06-20 ~03:00 CESTScope: La coupure électrique réelle de 02:07 traitée comme exécution non planifiée du test de stabilité reboot (CHECKLIST_DGX_PRE_CLINIQUE.md§6). Objectif : mesurer ce qui se rétablit seul vs ce qui exige une intervention — c'est le critère clé pour une clinique sans personnel technique sur place.Méthode: diagnostic read-only multi-agents (Claude infra, Qwen appli/guest, Codex consolidation). Aucun reset Git, aucun changement réseau hors IP statique arbitrée par Dom.
1. Timeline
| Heure | Événement |
|---|---|
| 02:07 | Coupure secteur. DGX reboot. Poste Dom (Linux) reboot. Laptop Windows .11 (sur batterie) jamais coupé. |
| 02:07:42 | win11-arm-lea.service (user) auto-démarre la VM. |
| ~02:09 | Watcher coordination (systemd user) revenu seul. Services rpa système remontés. |
| 02:07→02:18 | VM bloquée en boucle TianoCore (QEMU 99% CPU, guest agent/SSH absents). |
| 02:18 | Codex diagnostique : OVMF_VARS.fd corrompu par coupure brutale. |
| 02:21 | Codex restaure OVMF connu-bon (18/06) + TPM frais → VM boot prouvé (écran verrouillage Windows). |
| ~02:28 | Claude : DGX revenu en DHCP sur .46 (au lieu de .45) → IP statique .45 appliquée (décision Dom). |
| ~02:35 | Accès VM Dom rétabli (tunnel + VNC, mot de passe OK). |
| ~02:55 | Crash-loop dashboard-user éteint (Qwen). Revue infra/appli consolidée. |
2. Ce qui s'est rétabli SEUL (✅ socle solide)
| Domaine | Constat | Réf checklist |
|---|---|---|
| Boot DGX + services rpa | Tous active+enabled (dashboard, streaming, agent-chat, vwb back/front, api, worker, stream-worker, vllm-grounder, firewall) |
§1 PASS |
| Firewall | Réappliqué : 5900/5902/3389/22220/8000/11434 filtrés LAN, seuls 5001/5002/5004/5005 ouverts | §2 PASS (fort) |
| Auth | Dashboard 401, VWB 401 (basic auth), streaming Bearer | §3 majoritaire PASS |
| Auto-start VM | win11-arm-lea.service a bien démarré la VM (linger=yes) |
§4.1 — prouvé (était « à implémenter ») |
| Coordination | Watcher couche-1 (systemd user) revenu seul | — |
→ Le socle infra/services/sécurité survit à une coupure brutale sans intervention.
3. Ce qui a EXIGÉ une intervention (⚠️ gaps reprise non-assistée)
| # | Problème | Cause | Correctif (qui) | Risque clinique |
|---|---|---|---|---|
| G1 | DGX IP a dérivé .45→.46 |
bail DHCP après reboot | IP statique .45 (Claude/Dom) |
Élevé — casse tous clients/tunnels pointant .45. DHCP non fiable. |
| G2 | VM bloquée TianoCore | OVMF_VARS.fd corrompu (coupure brutale) |
restore OVMF connu-bon + TPM frais (Codex) | Élevé — sans agent, VM morte jusqu'à intervention manuelle. |
| G3 | dashboard-user crash-loop (244 restarts) |
fallback user clash port 5001 (service système le sert déjà) | stop + mask session (Qwen) | Moyen — bruit/ressources ; disabled mais relancé. |
| G4 | Léa guest non reconnectée | config.txt = CONFIGURE_ME + login Windows requis |
à renseigner .45+token (Qwen) |
Élevé — VM redémarre mais Léa ne reprend pas le travail seule. |
| G5 | Mot de passe VNC | -vnc password=on sans set_password dans les scripts |
rétabli de fait (tunnel) | Faible/Moyen — fragile si relaunch sans repose mdp. |
4. Recommandations de durcissement — reprise CLINIQUE non-assistée
Toutes modifiantes → à valider par Dom (mises en file, non appliquées cette nuit).
- BIOS DGX = « Power On » au retour AC (physique, Dom) — sinon une coupure laisse le DGX éteint.
- IP statique : fait au labo (
.45) ; cible clinique = Ethernet statique.178(DHCP = point faible démontré par G1). - Auto-réparation OVMF dans
win11-arm-lea.service: au boot Windows réussi, snapshotOVMF_VARS.fdsain ;ExecStartPre: si boucle TianoCore détectée (CPU 99% + guest agent absent N s), restaurer le snapshot sain automatiquement. → neutralise G2 sans agent. rpa-vision-v3-dashboard-user:maskpersistant (pas seulement session) — G3.- Léa reprise auto (G4) :
config.txtpersistant vers IP DGX + token ; auto-login Windows + Léa auto-start (pythonw) + reconnexion fleet sans geste humain. - Mot de passe VNC (G5) : poser le mot de passe au lancement via le monitor (script), ou documenter la procédure de repose.
5. Propositions de MAJ pour CHECKLIST_DGX_PRE_CLINIQUE.md (Qwen, propriétaire)
- §4.1 « auto-start VM » : passer À IMPLÉMENTER → VALIDÉ (prouvé par la panne, 02:07:42).
- §1.10 / Items à fixer #1 : dashboard service système actif confirmé ; le fallback user est l'orphelin → masquer.
- §6 « Test reboot » : exécuté en réel le 2026-06-20 → renseigner les résultats (col. Résultat) à partir des sections 2 et 3 ci-dessus.
- Ajouter une ligne G1 dérive IP DHCP et G2 corruption OVMF comme items de durcissement explicites.
6. Verdict test
Le socle technique tient (services, firewall, auth, auto-start VM). Les deux points durs pour une clinique sans technicien sur place sont G1 (dérive IP DHCP) et G2 (corruption OVMF VM non auto-réparée) : tous deux ont nécessité un agent cette nuit. La cible clinique doit les automatiser (IP statique Ethernet + auto-réparation OVMF). G4 (Léa ne reprend pas seule) est le troisième chantier reprise.