Aplikacja zawiesza się przy 100% zużyciu procesora podczas aktualizacji

76

appstreamcliprzegrzewa mój laptop, ciągle wykorzystując 100% rdzenia. Moim jedynym rozwiązaniem jest zabicie go. Oto zrzut ekranu top:

wyjście top pokazującego appstreamcli ze 100% użyciem procesora

Mogę zabić appstreamclialbo z albo . Ale kiedy to zrobię , proces powróci ponownie i zawiesi aktualizację. Jeśli następnie go zabiję, otrzymam następujące dane wyjściowe: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

Co to za proces i dlaczego wykorzystuje tak dużo procesora?

nazar2sfive
źródło
2
To jest błąd. Zobacz to pytanie: askubuntu.com/questions/774918/…
alwaysask
9
68 stopni to dobra temperatura do gotowania jajka, ale będziesz potrzebować znacznie wyższych temperatur do gotowania laptopa.
Michael Hampton
@MichaelHampton Mój laptop gotuje się, gdy jakiś głupi proces jądra zabiera cały procesor; łatwo dochodzi do 100 stopni Celsjusza. Potem się wyłącza.
kot
@cat Racja, 100 to magiczna liczba, na której gotuje się Twój laptop. Może warto wyczyścić wentylator i przerobić pastę termiczną na procesorze.
Michael Hampton
@MichaelHampton 100 to magiczna liczba, pod którą procesor mówi: Wyłączam się, bo inaczej zatrzymam się i złapię ogień !!!” . Wentylator jest czysty, a pasta termiczna nowa, jest po prostu stara.
kot

Odpowiedzi:

78

Jest to spowodowane błędem https://bugs.launchpad.net/ubuntu/+source/appstream/+bug/1579712
Działające rozwiązanie (właśnie wypróbowałem siebie):

Najpierw zabij appstreamcli, ręcznie lub za pomocą

sudo kill -KILL $(pgrep appstreamcli)

lub

sudo pkill -KILL appstreamcli

Następnie:

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

Następnie będziesz mógł kontynuować aktualizację apt-get jak zwykle

sam50
źródło
12
Dokładnie mój problem, ale przy okazji, co to jest appstreamcli?
Charles-Antoine Fournel
17
Uważaj, działa to w systemie 64-bitowym; na 32-bit, trzeba zmienić amd64się i386w linkach.
Rmano
1
Do wykonania po sudo kill {pid}przejściu błędu „ baza danych statusu dpkg jest zablokowana przez inny proces ”.
Andrea,
Problem polega na tym, że appstreamcli jest uruchamiany jako root, więc aby ominąć blokadę bazy danych, po prostu zrób: sudo killall appstreamcli
osa
2
Ponieważ ten błąd objawia się bardzo rzadko (zgodnie z opisem), poprawkę należy przetestować za pomocą przypadku testowego. Uruchomienie sudo appstreamcli refresh --forcebez zawieszenia potwierdzi, że poprawka działa. To zadziałało dla mnie. Dziękuję za rozwiązanie!
nolexa,
2

Alternatywnie z jakiegokolwiek powodu, jeśli nie chcesz instalować pakietu out of repo i po prostu czekać na aktualizację, możesz ją całkowicie odinstalować.

Spowoduje to usunięcie Discover on KDE: Plasma, więc zakładam, że usunie także oprogramowanie Gnome lub cokolwiek, co doda Twój Ubuntu Flavor. W takim przypadku możesz po prostu użyć Muona na Kubuntu lub Synaptic na DE opartych na GTK.

Przed uruchomieniem sprawdź, czy pakiety są usuwane, aby upewnić się, że wszystko jest w porządku.

Możesz dowiedzieć się, co to jest, uruchamiając

apt show appstream

odinstalować uruchomienie aplikacji

sudo apt remove appstream
Goddard
źródło