appstreamcli suspendu avec 100% d'utilisation du processeur lors de la mise à jour


76

appstreamclisurchauffe mon ordinateur portable en utilisant constamment 100% d'un noyau. Ma seule solution est de le tuer. Voici une capture d'écran de top:

sortie de top montrant appstreamcli avec 100% d'utilisation du processeur

Je peux tuer appstreamclisoit avec ou . Mais une fois que je fais , le processus revient à nouveau et bloque la mise à jour. Si je le tue alors, j'obtiens le résultat suivant: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

Quel est ce processus et pourquoi utilise-t-il autant de ressources processeur?


2
C'est un bug. Voir cette question: askubuntu.com/questions/774918/…
alwaysask

9
Cuire un œuf à 68 degrés est une bonne température, mais vous aurez besoin de températures beaucoup plus élevées pour cuire un ordinateur portable.
Michael Hampton

@ MichaelHampton Mon ordinateur portable est cuit lorsqu'un processus noyau muet prend tout le temps processeur; il se lève facilement à 100 degrés Celsius. Puis il s'éteint.
Chat

@cat Right, 100 est le nombre magique où votre ordinateur portable est en train de cuisiner. Cela vaut peut-être la peine de nettoyer son ventilateur et de refaire la pâte thermique sur son processeur.
Michael Hampton

@MichaelHampton 100 est le nombre magique auquel la CPU dit: "Je m'éteins ou bien je vais arrêter et attraper le feu !!!" . Le ventilateur est propre et la pâte thermique neuve, c'est juste vieux.
Chat

Réponses:


78

Ceci est dû à un bug https://bugs.launchpad.net/ubuntu/+source/appstream/+bug/1579712
La solution de travail (juste essayé moi-même):

Première tuer appstreamcli, soit manuellement ou avec

sudo kill -KILL $(pgrep appstreamcli)

ou

sudo pkill -KILL appstreamcli

Ensuite:

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

Après cela, vous pourrez continuer avec apt-get update comme d'habitude


12
Exactement mon problème, mais qu'est-ce qu'appstreamcli en passant?
Charles-Antoine Fournel

17
Attention, cela fonctionne sur un système 64 bits; sur un 32 bits, vous devez changer amd64à i386dans les liens.
Rmano

1
Faire après sudo kill {pid}pour passer l' erreur "La base de données d'état de dpkg est verrouillée par un autre processus ".
Andrea

Le problème, c'est qu'appstreamcli est exécuté en tant que root. Pour contourner le verrou de la base de données, il suffit de procéder comme suit: sudo killall appstreamcli
wasp

2
Comme ce bogue se manifeste très rarement (selon la description), le correctif doit être testé à l'aide d'un scénario de test. Courir sudo appstreamcli refresh --forcesans accroc confirmera que le correctif fonctionne. Cela a fonctionné pour moi. Merci pour la solution!
nolexa

2

Sinon, pour quelque raison que ce soit, si vous ne souhaitez pas installer un package hors référentiel et attendez simplement une mise à jour, vous pouvez le désinstaller complètement.

Cela supprimera Discover sur KDE: Plasma, donc je suppose que cela supprimera également le logiciel Gnome, ou tout ce que votre parfum Ubuntu ajoutera. Si tel est le cas, vous pouvez simplement utiliser Muon sur Kubuntu ou Synaptic sur les DE basés sur GTK.

Avant de lancer ceci, assurez-vous de vérifier les paquets en cours de suppression pour vous assurer que tout va bien pour vous.

Vous pouvez comprendre ce que quelque chose est en cours d'exécution

apt show appstream

désinstaller appstream run

sudo apt remove appstream
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.