Skip to content
Latchkey

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 concurrency cancelou 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).

Guias relacionados