TL; DR: Aqui o problema aparentemente foi causado por um problema (provavelmente alguma condição de corrida obscura) entre o OpenGL e o KWin.
Para contornar isso, é necessário desabilitar o OpenGL e usar o XRender (em Configuração do sistema > Efeitos da área de trabalho > Avançado > Tipo de composição, selecione "XRender" em vez do padrão OpenGL).
Alguns efeitos da área de trabalho não estarão mais disponíveis, mas pelo menos o sistema ficará estável e não congelará mais.
Longa história:
O problema ocorreu a cada poucas semanas aleatoriamente, algumas vezes várias vezes ao dia, algumas vezes duas ou três semanas sem nenhum problema, e foi, portanto, bastante difícil de analisar (BTW em algum momento eu mudei para outra placa de vídeo, mudando de radeon Intel i915 sem qualquer impacto sobre o problema, portanto, não está relacionado nem com a placa gráfica nem com o seu driver).
Deixei um script sendo executado em segundo plano e fazendo verificações automáticas a cada três minutos em um loop infinito para que eles pudessem capturar algo quando o congelamento da área de trabalho.
De fato, o congelamento pode ser programaticamente detectado através de qdbus e, em particular, essa chamada falha se, e somente se, a área de trabalho estiver congelada:
qdbus org.kde.Kwin /App org.freedesktop.DBus.Peer.Ping
Embora normalmente não tenha saída e um código de retorno de 0, quando a área de trabalho está congelada, esse comando falha com um código de retorno 2 e uma mensagem de erro "NoReply".
Para informação, eu também verifiquei o status de org.kde.plasma-desktop, org.kde.kuiserver e org.kde.kded, que parecem sãos quando ocorre um congelamento, portanto, KWin parece ser o verdadeiro culpado. / p>
Eu tentei várias maneiras de restaurar a integridade do ambiente de desktop sem sorte. Tentar reiniciar o KWin de forma limpa usando kquitapp kwin
ou kwin --replace
não parece ter nenhum efeito perceptível. Eu tentei matar e reconstruir o ambiente de área de trabalho completo da seguinte forma:
kbuildsycoca4
kquitapp plasma-desktop
kquitapp kwin
kquitapp kuiserver
sleep 2
killall plasma-desktop kwin kuiserver; sleep 2
killall -9 plasma-desktop kwin kuiserver; sleep 2
kstart kuiserver
kstart kwin
kstart plasma-desktop
A área de trabalho não foi liberada! ... mas apenas para um quadro: a tela (como pode ser visto ao olhar para o relógio na barra de tarefas) é atualizada e congela imediatamente novamente.
No entanto, tendo encontrado o culpado, eu encontrei um antigo "alto, crítico, mas vencido não consertar porque muito obscuro "problema aqui . Mesmos sintomas, as mesmas etapas de diagnóstico e, finalmente, a solução alternativa sugerida: use o XRender em vez do OpenGL.
Já se passaram vários meses desde que apliquei essa alteração e não encontrei nenhum congelamento desde então, portanto, acho que essa solução alternativa está correta para esse problema.