Cos'è il "filo canarino" e perché sta morendo di fame?


14

Di tanto in tanto appare in /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.

Cosa sta succedendo qui?


Qualche errore in kern.log riguardante ACPI? In tal caso: accedere al BIOS e verificare se ACPI power save optionsè impostato su Extended. Modificalo in Normal.
Rinzwind,

Risposte:


24

Il termine "canarino" qui usato deriva originariamente dall'estrazione del carbone . I minatori di carbone utilizzavano i canarini per rilevare i gas pericolosi (se il canarino che trasportavano era morto, sapevano che dovevano uscire dal pozzo / miniera il prima possibile). Di conseguenza, il termine "canarino" viene spesso utilizzato per tutto ciò che viene utilizzato per ricevere un avviso (anticipato) su una situazione pericolosa.

In questo caso sembra che 'rtkit' avvii un thread "normale" per verificare se i thread che hanno priorità "in tempo reale" stanno "affamando" altri thread (e processi), dove "affamare" significa che ottengono troppo poco tempo del processore . Questa è una misura di sicurezza per assicurarsi che i processi / thread che hanno accesso a priorità in tempo reale non consumino così tanto tempo CPU che altre attività non ne ottengano più.

Quindi a quanto pare alcuni thread che hanno ottenuto priorità in tempo reale da RTKit si comportano in modo scorretto e, provando a monopolizzare la CPU, RTKit lo rileva con il suo "thread canarino", e quindi RTKit elimina le priorità in tempo reale.


-3

È un buffer overflow

Canarini di overflow del buffer di Wikipedia

Non riesco a dire dai registri che hai postato dove si trova il problema, puoi controllare o incollare le voci del registro sopra un sotto quei messaggi? Che cos'è il processo 1368?

sudo ps -p 1368

2
Non si tratta di overflow del buffer, ma l'uso della parola "canarino" deriva anche dall'uso dei canarini del minatore di carbone.
JanC
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.