Un piège du cycle de vie des threads du noyau Linux : le cas du processus Chromium qui se termine aléatoirement
Lors de l'optimisation de la latence de démarrage d'Output Media de Recall.ai, un ingénieur a rencontré un bogue déroutant : le processus Chromium se terminait aléatoirement après le démarrage. La cause racine a été attribuée à l'indicateur `--die-with-parent` de Bubblewrap et à la gestion de PR_SET_PDEATHSIG par le noyau Linux. Cet indicateur fait en sorte que les processus enfants reçoivent un signal SIGKILL lorsque le thread parent, et non le processus parent, se termine. La gestion des threads de Tokio a interagi avec ce comportement, entraînant la terminaison inattendue de Chromium lorsque le thread parent était récupéré. La suppression de l'indicateur a résolu le problème, mais a révélé une particularité peu connue du noyau Linux, soulignant la nécessité de prudence lors de la gestion de l'interaction entre les cycles de vie des threads et l'isolement des processus.