O que é o “fio canário” e por que ele está morrendo de fome?

10

O seguinte aparece ocasionalmente em /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.

O que está acontecendo aqui?

    
por ændrük 11.12.2011 / 20:43

2 respostas

20

O termo "canário" como usado aqui vem de mineração de carvão originalmente. Mineiros de carvão usavam canários para detectar gases perigosos (se o canário que carregavam morria, eles sabiam que tinham que sair do poço / mina o mais rápido possível). Como resultado, o termo "canário" é agora usado para qualquer coisa que você usa para obter um aviso (antecipado) sobre uma situação perigosa.

Nesse caso, parece como 'rtkit' inicia um thread "normal" para testar se os threads que recebem prioridades em "tempo real" estão "inutilizando" outros threads (& amp; processos), onde "fome" significa que eles recebem muito pouco tempo de processador. Esta é uma medida de segurança para garantir que processos / threads que tenham acesso a prioridades em tempo real não usem tanto tempo de CPU que outras tarefas não tenham mais nenhum.

Então, aparentemente, alguns tópicos que obtiveram prioridades em tempo real do rtkit estão se comportando mal e tentando monopolizar a CPU, o rtkit detecta isso com seu "canary thread" e, assim, o rtkit retira as prioridades em tempo real .

    
por JanC 11.12.2011 / 21:06
-3

É um estouro de buffer

Canários de estouro de buffer da Wikipedia

Eu não posso dizer a partir dos registros que você postou onde está o problema, você pode verificar ou colar as entradas de log acima e abaixo dessas mensagens? O que é o processo 1368?

sudo ps -p 1368
    
por Panther 11.12.2011 / 21:00

Tags