¿Qué es el "hilo canario" y por qué se muere de hambre?

14

Lo siguiente aparece ocasionalmente en /var/log/syslog:

rtkit-daemon[1145]: The canary thread is apparently starving. Taking action.
rtkit-daemon[1145]: Demoting known real-time threads.
rtkit-daemon[1145]: Successfully demoted thread 1431 of process 1368 (n/a).
rtkit-daemon[1145]: Successfully demoted thread 1430 of process 1368 (n/a).
rtkit-daemon[1145]: Successfully demoted thread 1368 of process 1368 (n/a).
rtkit-daemon[1145]: Demoted 3 threads.

¿Que está pasando aqui?

ændrük
fuente
¿Algún error en kern.log sobre ACPI? Si es así: ingrese BIOS y verifique si ACPI power save optionsestá configurado en Extended. Cámbialo a Normal.
Rinzwind

Respuestas:

24

El término "canario", como se usa aquí, proviene originalmente de la minería del carbón . Los mineros de carbón usaban canarios para detectar gases peligrosos (si el canario que llevaban con ellos murió, sabían que tenían que salir del pozo / mina lo antes posible). Como resultado, el término "canario" ahora se usa a menudo para cualquier cosa que use para obtener una advertencia (temprana) sobre una situación peligrosa.

En este caso, parece que 'rtkit' inicia un subproceso "normal" para probar si los subprocesos que tienen prioridades "en tiempo real" están "matando de hambre" a otros subprocesos (y procesos), donde "morir de hambre" significa que obtienen muy poco tiempo de procesador . Esta es una medida de seguridad para garantizar que los procesos / subprocesos que tienen acceso a prioridades en tiempo real no consuman tanto tiempo de CPU que otras tareas ya no tengan ninguno.

Entonces, aparentemente algunos hilos que obtuvieron prioridades en tiempo real de rtkit se están portando mal e intentan monopolizar la CPU, rtkit lo detecta con su "hilo canario" y, por lo tanto, rtkit elimina las prioridades en tiempo real.

JanC
fuente
-3

Es un desbordamiento de búfer

Wikipedia desbordamiento de búfer canarios

No puedo decir de los registros que publicó dónde está el problema, ¿puede verificar o pegar las entradas de registro encima y debajo de esos mensajes? ¿Qué es el proceso 1368?

sudo ps -p 1368
Pantera
fuente
2
No se trata de desbordamientos del búfer, pero el uso de la palabra "canario" también se deriva del uso de los canarios del minero de carbón.
JanC