Skip to content
Latchkey

O Que É um Stale Runner? A Máquina Deriva que Deixa Builds Instáveis

Um stale runner é um que derivou do seu estado pretendido - uma versão de agente desatualizada, uma imagem sem patch, ou estado residual acumulado - e agora causa falhas.

Stale runners são uma das principais causas de "funciona na maioria dos runners menos naquele". Runners persistentes derivam com o tempo; quanto mais vivem, mais longe ficam de uma baseline limpa e mais misteriosas ficam suas falhas.

Como runners ficam stale

  • Drift de agente: a versão do runner fica para trás e é rejeitada ou depreciada.
  • Drift de imagem: o SO e as ferramentas envelhecem com patches de segurança faltando.
  • Drift de estado: arquivos, caches e processos residuais se acumulam entre jobs.
  • Drift de registration: runners fantasma persistem offline após a máquina sumir.

Por que a staleness causa instabilidade

Um runner derivado se comporta diferente de um novo: um build que passa em máquinas limpas falha no stale por causa de estado residual ou de uma ferramenta antiga. Esses são enlouquecedores de debugar porque o código está bem - a máquina não está.

Prevenindo a staleness

Runners efêmeros não podem ficar stale: cada um é novo e destruído após um job. Para runners persistentes, você precisa de atualizações automáticas de agente, rebuilds regulares de imagem e limpeza por job - o que é trabalho de ops contínuo.

Staleness em runners gerenciados

Os runners da Latchkey são efêmeros e reconstruídos a partir de uma imagem mantida, então a staleness simplesmente não ocorre - todo job recebe uma máquina atual e limpa.

Identificando um stale runner

Sinais reveladores são um job que falha só em um runner específico, avisos de depreciação sobre a versão do runner, ou erros de disco cheio e de processos residuais que somem após um reboot. Quando o sintoma se move com a máquina em vez do código, suspeite de staleness.

Principais conclusões

  • Um stale runner derivou em agente, imagem ou estado e agora falha.
  • É uma causa principal de instabilidade "que falha só naquele runner".
  • Runners efêmeros não podem ficar stale; os persistentes precisam de manutenção ativa.
  • Runners efêmeros gerenciados evitam a staleness por completo.

Guias relacionados