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
@@ -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.*