docs(easypanel): healing log INC-032 — restart storm por stall de compactacao de memoria, nao bug de app

- easypanel-monitor: entrada healing log com deteccao (containerd shim disconnected + journalctl -k rcu/soft lockup) e fix (sysctl compaction_proactiveness/swappiness + cgroup limits)
- easypanel-troubleshoot: novo padrao 'Crash Loop multi-servico' distinto do crash loop single-app; corrigida referencia obsoleta a ssh-unified (permanentemente proibido) para ssh/bash nativo; healing log entry
This commit is contained in:
Claude Code
2026-08-22 12:28:41 +01:00
parent e3a2c6fd9c
commit 99c1f8c8d3
2 changed files with 9 additions and 1 deletions
@@ -343,6 +343,7 @@ Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de exe
```jsonl
{"date":"","issue":"","fix":"","source":"user|auto"}
{"date":"2026-08-22","issue":"Varios servicos nao relacionados a quebrar e reiniciar em simultaneo, ciclicamente — NAO e bug de app; e stall de compactacao de memoria do kernel (kcompactd0, vm.compaction_proactiveness) sob pressao do host Proxmox sem folga, que faz o containerd perder shims em massa e o Swarm reagendar tudo. Detectar com: journalctl -u containerd | grep 'shim disconnected' | cut -c1-16 | sort | uniq -c (rajadas na mesma janela de 1min) + journalctl -k | grep -iE 'rcu|soft lockup'. Confirmar se e evento de HOST (nao so do easy) comparando pvesh rrddata das outras VMs no mesmo minuto antes de investigar servico a servico. Ver INC-032. Nota: ssh-unified MCP esta permanentemente proibido — usar ssh nativo/bash.","fix":"sysctl vm.compaction_proactiveness=0 + vm.swappiness=10 (persistir em /etc/sysctl.d/); aplicar cgroup memory limit a todo o container sem tecto (docker update --memory ao vivo nao exige restart).","source":"auto"}
```
*Adicionar nova linha após cada erro corrigido.*
@@ -131,6 +131,12 @@ Fix: Add variable to EasyPanel environment
```
Pattern: Restart count > 3 in 10min
Fix: Check logs for root cause
Se VÁRIOS serviços não relacionados reiniciarem na MESMA janela (~1min):
NÃO é bug de app individual. Ver INC-032 — provável stall de compactação
de memória do kernel (host sem folga) a derrubar containerd em massa.
Confirmar: journalctl -u containerd | grep "shim disconnected" |
cut -c1-16 | sort | uniq -c (rajadas na mesma janela = confirma).
```
### Database Connection
@@ -215,7 +221,7 @@ Ver skill `/easypanel-api` para documentação completa.
## MCPs Necessários
- ✅ `ssh-unified` - Acesso ao servidor para API e fallback
- ⚠️ `ssh-unified` está PERMANENTEMENTE PROIBIDO (regra global) — usar `ssh`/`bash` nativo para acesso ao servidor
## Tools Necessários
@@ -290,6 +296,7 @@ Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de exe
```jsonl
{"date":"","issue":"","fix":"","source":"user|auto"}
{"date":"2026-08-22","issue":"Padrao de 'varios servicos a quebrar e reiniciar sucessivamente' foi confundido inicialmente com bugs de app individuais. Causa real era host-level: stall de compactacao de memoria do kernel (kcompactd0) sob pressao do host Proxmox sem folga, derrubando o containerd em massa e disparando reagendamento simultaneo de dezenas de servicos Swarm nao relacionados. 76/90 containers no easy corriam sem qualquer cgroup memory limit, o que agravou o impacto (um processo sem tecto, surrealdb, chegou a 24-30GB e disparou OOM). Ver INC-032 para diagnostico completo e comandos.","fix":"Antes de investigar servico a servico: correlacionar timestamps de 'Failed'/'Shutdown' entre servicos via docker service ps; se simultaneos, investigar journalctl -k (rcu/soft lockup) e journalctl -u containerd (shim disconnected) no host antes de assumir bug de app. Aplicar cgroup memory limit a qualquer container sem tecto.","source":"auto"}
```
*Adicionar nova linha após cada erro corrigido.*