Uma pegadinha do ciclo de vida de thread do kernel do Linux: o caso do processo Chromium que morre aleatoriamente

2025-04-10
Uma pegadinha do ciclo de vida de thread do kernel do Linux: o caso do processo Chromium que morre aleatoriamente

Ao otimizar a latência de inicialização do Output Media da Recall.ai, um engenheiro encontrou um bug intrigante: o processo Chromium terminava aleatoriamente após o lançamento. A causa raiz foi rastreada para a sinalização `--die-with-parent` do Bubblewrap e o tratamento do PR_SET_PDEATHSIG pelo kernel do Linux. Essa sinalização faz com que os processos filhos recebam um sinal SIGKILL quando a thread pai, não o processo pai, termina. A gestão de threads do Tokio interagiu com esse comportamento, levando à terminação inesperada do Chromium quando a thread pai era colhida. Remover a sinalização resolveu o problema, mas revelou uma peculiaridade pouco conhecida do kernel do Linux, sublinhando a necessidade de cautela ao lidar com a interação entre ciclos de vida de threads e isolamento de processos.

Desenvolvimento