appstreamcli pendurado com 100% de uso da CPU durante a atualização

76

appstreamcliestá superaquecendo meu laptop usando constantemente 100% de um núcleo. Minha única solução é matá-lo. Aqui está uma captura de tela de top:

saída da parte superior mostrando appstreamcli com 100% de uso da CPU

Eu posso matar appstreamclicom um ou . Mas quando o faço , o processo retorna novamente e trava a atualização. Se eu matá-lo, recebo a seguinte saída:sudo kill pidsudo killall appstreamclisudo apt updateappstreamcli

Reading package lists... Done
E: Problem executing scripts APT::Update::Post-Invoke-Success
'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli;
 then appstreamcli refresh > /dev/null;
 fi'
E: Sub-process returned an error code

O que é esse processo e por que ele está usando tanta CPU?

nazar2sfive
fonte
2
É um bug. Veja esta pergunta: askubuntu.com/questions/774918/…
alwaysask
9
68 graus é uma boa temperatura para cozinhar um ovo, mas você precisará de temperaturas muito mais altas para cozinhar um laptop.
Michael Hampton
@MichaelHampton Meu laptop fica cozido quando algum processo burro do kernel leva todo o tempo da CPU; chega a 100 graus Celsius com muita facilidade. Então ele desliga.
Cat
@cat Certo, 100 é o número mágico em que seu laptop está cozinhando. Pode valer a pena limpar o ventilador e refazer a pasta térmica em sua CPU.
Michael Hampton
@ MichaelHampton 100 é o número mágico no qual a CPU diz: "Estou desligando ou então vou parar e pegar fogo !!!" . A ventoinha está limpa e a pasta térmica nova, apenas velha.
cat

Respostas:

78

Isso é causado por um bug https://bugs.launchpad.net/ubuntu/+source/appstream/+bug/1579712
A solução de trabalho (tentei por mim mesmo):

Primeiro mate appstreamcli, manualmente ou com

sudo kill -KILL $(pgrep appstreamcli)

ou

sudo pkill -KILL appstreamcli

Então:

wget -P /tmp https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
sudo dpkg -i /tmp/appstream_0.9.4-1ubuntu1_amd64.deb /tmp/libappstream3_0.9.4-1ubuntu1_amd64.deb

Depois disso, você poderá prosseguir com o apt-get update como de costume

sam50
fonte
12
Exatamente o meu problema, mas o que é appstreamcli, a propósito?
Charles-Antoine Fournel
17
Cuidado, isso funciona em um sistema de 64 bits; em 32 bits, é necessário mudar amd64para i386nos links.
Rmano 20/05
1
Para fazer depois sudo kill {pid}de passar o erro "o banco de dados de status do dpkg está bloqueado por outro processo ".
Andrea
O problema é que appstreamcli está sendo executado como root, de modo a contornar o bloqueio de banco de dados, basta fazer: sudo killall appstreamcli
vespa
2
Como esse bug se manifesta em uma ocasião muito rara (de acordo com a descrição), a correção deve ser testada através de um caso de teste. A execução sudo appstreamcli refresh --forcesem interrupção confirmará que a correção funciona. Funcionou para mim. Obrigado pela solução!
Nolexa 20/05
2

Como alternativa, por qualquer motivo, se você não quiser instalar um pacote fora do repositório e apenas esperar por uma atualização, poderá desinstalá-lo completamente.

Isso removerá o Discover no KDE: Plasma, por isso suponho que ele também remova o Software Gnome, ou o que o seu Ubuntu Flavor adicionar. Se for esse o caso, você pode simplesmente usar o Muon no Kubuntu ou o Synaptic nos DEs baseados em GTK.

Antes de executar isso, verifique os pacotes que estão sendo removidos para garantir que você esteja bem.

Você pode descobrir o que é algo executando

apt show appstream

desinstalar a execução do appstream

sudo apt remove appstream
Goddard
fonte