Una trampa del ciclo de vida del hilo del kernel de Linux: el caso del proceso Chromium que muere aleatoriamente

2025-04-10
Una trampa del ciclo de vida del hilo del kernel de Linux: el caso del proceso Chromium que muere aleatoriamente

Al optimizar la latencia de inicio de Output Media de Recall.ai, un ingeniero encontró un error desconcertante: el proceso Chromium terminaba aleatoriamente después del inicio. La causa raíz se rastreó hasta la bandera `--die-with-parent` de Bubblewrap y el manejo de PR_SET_PDEATHSIG por parte del kernel de Linux. Esta bandera hace que los procesos secundarios reciban una señal SIGKILL cuando el hilo principal, no el proceso principal, termina. La gestión de hilos de Tokio interactuó con este comportamiento, llevando a la terminación inesperada de Chromium cuando el hilo principal era recolectado. Eliminar la bandera solucionó el problema, pero reveló un peculiar comportamiento poco conocido del kernel de Linux, subrayando la necesidad de precaución al manejar la interacción entre los ciclos de vida de los hilos y el aislamiento de procesos.

Leer más
Desarrollo

Reducción de latencia del 83% con indicadores de proceso Linux esotéricos

2025-03-06
Reducción de latencia del 83% con indicadores de proceso Linux esotéricos

Un ingeniero optimizando la función Output Media de Recall.ai se encontró con un problema desconcertante: la terminación aleatoria del proceso Chromium dentro de un entorno de espacio aislado. Una depuración profunda reveló la causa raíz: la función prctl(PR_SET_PDEATHSIG, SIGKILL) del kernel de Linux, que rastrea los subprocesos principales, no los procesos. La interacción inesperada con la administración de subprocesos de Tokio provocó la recuperación de los subprocesos principales y desencadenó la señal SIGKILL, terminando el proceso secundario. Eliminar el indicador --die-with-parent de Bubblewrap resolvió el problema, lo que resultó en una reducción de latencia del 83%.

Leer más