From 99c1f8c8d37e896fdeac3747006114226ea2c7e2 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Sat, 22 Aug 2026 12:28:41 +0100 Subject: [PATCH] =?UTF-8?q?docs(easypanel):=20healing=20log=20INC-032=20?= =?UTF-8?q?=E2=80=94=20restart=20storm=20por=20stall=20de=20compactacao=20?= =?UTF-8?q?de=20memoria,=20nao=20bug=20de=20app?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- infraestrutura/skills/easypanel-monitor/SKILL.md | 1 + infraestrutura/skills/easypanel-troubleshoot/SKILL.md | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/infraestrutura/skills/easypanel-monitor/SKILL.md b/infraestrutura/skills/easypanel-monitor/SKILL.md index 237c25e..7f70046 100644 --- a/infraestrutura/skills/easypanel-monitor/SKILL.md +++ b/infraestrutura/skills/easypanel-monitor/SKILL.md @@ -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.* diff --git a/infraestrutura/skills/easypanel-troubleshoot/SKILL.md b/infraestrutura/skills/easypanel-troubleshoot/SKILL.md index 600aaf7..d1f197a 100644 --- a/infraestrutura/skills/easypanel-troubleshoot/SKILL.md +++ b/infraestrutura/skills/easypanel-troubleshoot/SKILL.md @@ -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.*