O que é o "fio canário" e por que está morrendo de fome?

14

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?

ændrük
fonte
Algum erro no kern.log referente ao ACPI? Em caso afirmativo: entre no BIOS e verifique se ACPI power save optionsestá definido como Extended. Mude para Normal.
Rinzwind 11/12

Respostas:

24

O termo "canário", usado aqui, vem originalmente da mineração de carvão . Os mineiros de carvão usavam canários para detectar gases perigosos (se o canário que eles carregavam com eles morresse, eles sabiam que tinham que sair do poço / mina o mais rápido possível). Como resultado, o termo "canário" agora é usado com frequência para qualquer coisa que você use para receber um aviso (precoce) sobre uma situação perigosa.

Nesse caso, parece que o 'rtkit' inicia um encadeamento "normal" para testar se os encadeamentos que recebem prioridades em "tempo real" estão "inanimando" outros encadeamentos (e processos), onde "inanimado" significa que eles têm muito pouco tempo do processador . Essa é uma medida de segurança para garantir que processos / threads que tenham acesso a prioridades em tempo real não consumam tanto tempo de CPU que outras tarefas não tenham mais.

Então, aparentemente, alguns threads 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, portanto, o rtkit retira as prioridades em tempo real.

JanC
fonte
-3

É um estouro de buffer

Canários de estouro de buffer da Wikipedia

Não sei dos logs que você postou onde está o problema. Você pode verificar ou colar as entradas de log acima e abaixo dessas mensagens? Qual é o processo 1368?

sudo ps -p 1368
Pantera
fonte
2
Não se trata de estouros de reserva, mas o uso da palavra "canário" também é derivado do uso de canários de mineiros de carvão.
janc