id: "REQ-280" title: "Trava da atualização pelo painel: dono morto sob open_basedir e etapa com erro comum" status: "complete" date: "2026-10-15" author: "executor" target_repo: "conn2flow" batch: "BATCH-289" topology: "dupla" autonomy: "autonomo_monitorado" release: "gestor-v3.0.8"
req-280: trava da atualização pelo painel (dois casos que sobraram)
Ocorrência (15/10, 17:05, temp.conn2flow.com)
A atualização para a 3.0.7 recusou: "Outro deploy está em execução … (PID 1386087), desde 16:44:44". Era a
sessão das 16:44 (3.0.6), cuja etapa de banco devolveu erro comum (wait_timeout, req-279): a tela
parou sem finalize nem cancel e a trava ficou. A regra de dono morto da req-277 não agiu: o PHP-FPM do
HestiaCP roda com open_basedir e não enxerga o /proc, então a biblioteca não decidia. Trava removida à mão.
Correção
-
deploy_lock_orphan(): consultaposix_kill(pid, 0)antes do/proc; só ESRCH (3) conta como morto; semposixou sem permissão, cai no/proce, se não houver, não decide (como antes). -
admin-atualizacoes.js: erro ou falha de comunicação nas etapasdeployedbcancela a sessão (ocancellibera a trava) e o cancelamento zera a sessão da tela, liberando "Iniciar".
Aceite
-
[x] Dono morto reconhecido sem
/proc(teste com sinal simulado e sinal realposixno Lab). -
[x] Etapa com erro cancela a sessão (contrato do JS).
-
[x] PHPUnit 1.857 e Vitest 700, sem falhas.
-
[x] Release 3.0.8 e homologação no
temp.