Exit code 143 explicado: SIGTERM e encerramento gracioso
O exit code 143 é 128 + 15: o processo recebeu SIGTERM, o sinal educado de "por favor, pare agora". No CI, geralmente significa que algo pediu para o job terminar, não que o job falhou por conta própria.
Diferente de uma falha normal, 143 significa que um ator externo terminou o processo. Entender quem envia SIGTERM e por quê diz se você deve se preocupar ou dar de ombros.
A codificação
Um processo morto pelo sinal N sai com 128 + N. SIGTERM é o sinal 15, então 128 + 15 = 143. SIGTERM é o pedido padrão de terminar graciosamente - o processo tem a chance de fazer limpeza antes de sair, diferente do SIGKILL.
Por que aparece no CI
- Cancelamento de job - alguém fez push de novo, ou um grupo de
concurrencycancelou a execução. - Um timeout de step ou job disparando e enviando SIGTERM primeiro.
- Recuperação de instância spot/preemptível pelo provedor de nuvem.
- Um processo pai encerrando e sinalizando seus filhos.
Como saber se é um problema
Se a execução foi cancelada ou substituída, 143 é esperado e inofensivo - ignore. Se aparece em uma execução que ninguém cancelou, suspeite de um timeout ou de uma instância subjacente sendo recuperada. Verifique o status de cancelamento da execução e a configuração de timeout antes de presumir um bug no código.
143 vs 137
SIGTERM (143) é gracioso e capturável; SIGKILL (137) é imediato e não capturável, geralmente do OOM killer. Se seu processo ignora SIGTERM, um watchdog costuma escalar para SIGKILL - então um 143 que vira 137 é um processo que não encerrou a tempo.
Principais conclusões
- Exit 143 = morto por SIGTERM (128 + 15), um pedido de parada graciosa.
- No CI, geralmente significa cancelamento, timeout ou preempção de spot.
- É inofensivo quando a execução foi cancelada ou substituída.
- Ignorar SIGTERM pode fazer você ser escalado para SIGKILL (137).