appstreamcli se cuelga con un uso de CPU del 100% durante la actualización

76

appstreamcliestá sobrecalentando mi laptop usando constantemente el 100% de un núcleo. Mi única solución es matarlo. Aquí hay una captura de pantalla de top:

salida de la parte superior mostrando appstreamcli con 100% de uso de CPU

Puedo matar appstreamclicon cualquiera o . Pero una vez que lo hago , el proceso vuelve de nuevo y cuelga la actualización. Si luego lo mato, obtengo el siguiente resultado: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

¿Qué es este proceso y por qué está usando tanta CPU?

nazar2sfive
fuente
2
Es un error Vea esta pregunta: askubuntu.com/questions/774918/…
pregunte
99
68 grados es una buena temperatura para cocinar un huevo, pero necesitará temperaturas mucho más altas para cocinar una computadora portátil.
Michael Hampton
@MichaelHampton Mi computadora portátil se cocina cuando algún proceso de kernel tonto toma todo el tiempo de la CPU; se eleva hasta 100 grados centígrados con bastante facilidad. Luego se apaga.
gato
@cat Correcto, 100 es el número mágico donde se cocina tu computadora portátil. Puede valer la pena limpiar su ventilador y rehacer la pasta térmica en su CPU.
Michael Hampton
@MichaelHampton 100 es el número mágico en el que la CPU dice: "¡Me estoy apagando o me detendré y me prenderé fuego!" . El ventilador está limpio y la pasta térmica nueva, es simplemente vieja.
gato

Respuestas:

78

Esto es causado por un error https://bugs.launchpad.net/ubuntu/+source/appstream/+bug/1579712
La solución de trabajo (solo lo intenté yo mismo):

Primero matar appstreamcli, ya sea manualmente o con

sudo kill -KILL $(pgrep appstreamcli)

o

sudo pkill -KILL appstreamcli

Entonces:

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

Después de esto, podrá continuar con apt-get update como de costumbre.

sam50
fuente
12
Exactamente mi problema, pero ¿qué es appstreamcli por cierto?
Charles-Antoine Fournel
17
Tenga cuidado, esto funciona en un sistema de 64 bits; en una de 32 bits, lo que tiene que cambiar amd64a i386los enlaces.
Rmano
1
Para hacer después sudo kill {pid}de pasar el error "la base de datos de estado dpkg está bloqueada por otro proceso ".
Andrea
El problema es que appstreamcli se está ejecutando como root, por lo que para evitar el bloqueo de la base de datos, simplemente haga lo siguiente: sudo killall appstreamcli
wasp
2
Dado que este error se manifiesta en una ocasión muy rara (según la descripción), la solución debe probarse a través de un caso de prueba. Ejecutar sudo appstreamcli refresh --forcesin colgar confirmará que la solución funciona. Funcionó para mi. ¡Gracias por la solución!
nolexa
2

Alternativamente, por cualquier razón, si no desea instalar un paquete fuera de repos y solo espera una actualización, puede desinstalarlo por completo.

Esto eliminará Discover en KDE: Plasma, así que supongo que también eliminará el software Gnome, o lo que agregue su Ubuntu Flavor. Si este es el caso, puede usar Muon en Kubuntu o Synaptic en DEs basadas en GTK.

Antes de ejecutar esto, asegúrese de verificar los paquetes que se eliminan para asegurarse de que está bien con usted.

Puedes descubrir qué es algo ejecutando

apt show appstream

desinstalar appstream run

sudo apt remove appstream
Goddard
fuente