Firefox zamraża się przy 100% zużyciu procesora przez 30 sekund podczas uruchamiania Chromium


22

Ostatnio zacząłem obserwować to bardzo mylące i denerwujące, nie mówiąc już o niepokojącym zachowaniu, gdy Firefox jest otwarty, a następnie uruchamia Chromium:

Przez około 30 sekund procesy potomne Firefoksa zużywałyby wszystkie dostępne zasoby procesora, powodując zatrzymanie renderowania stron internetowych (już wyświetlana strona zawiesza się, nowe strony pokazują białą stronę z szarym kołowrotkiem), podczas gdy ogólne okno nadal reaguje (menu, przewijanie strony) , przełączanie kart, nawet wewnętrzne strony, takie jak about: config lub about: preferencje działają ...). Sam chrom nie wykazuje żadnych objawów. Natychmiastowe zakończenie Chromium, gdy Firefox się kręci, nie zatrzymuje tego zachowania szybciej.

To samo dzieje się z moim zwykłym profilem Firefox, zupełnie nowym, nietkniętym profilem Firefox bez żadnych dodatków itp. Firefox uruchomił się w trybie awaryjnym z wyłączonymi dodatkami, a Firefox uruchomił w trybie prywatnym. Podobnie jak w przypadku Chromium, mogę uruchomić go z moim zwykłym profilem, w trybie incognito lub z profilem tymczasowym, zawsze generując te same wyniki.

Nic się nie dzieje, gdy Chromium działa i otwieram Firefox.

Podczas uruchamiania Firefoksa z terminala czasami otrzymuję takie komunikaty, gdy wychodzę z niego podczas wirowania (zwróć uwagę na linię błędu rury wspominającą o chromie ipc ...):

ExceptionHandler::GenerateDump cloned child 32165
ExceptionHandler::SendContinueSignalToChild sent continue signal to child
ExceptionHandler::WaitForContinueSignal waiting for continue signal...
[Parent 26520, Gecko_IOThread] WARNING: pipe error (52): Connection reset by peer: file /build/firefox-8oo9jx/firefox-62.0+build2/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 353
ExceptionHandler::GenerateDump cloned child 32274
ExceptionHandler::WaitForContinueSignal waiting for continue signal...
ExceptionHandler::SendContinueSignalToChild sent continue signal to child

O dziwo, nie mogłem odtworzyć tego zachowania na koncie gościa lub nowo utworzonym koncie zwykłym (administracyjnym).

Niektóre specyfikacje systemu (zaktualizowane):

  • Ubuntu 16.04 (64-bitowy)
  • Firefox 62,0 + build2-0ubuntu0.16.04.5 63.0 + build2-0ubuntu0.16.04.2
  • Chrom 69.0.3497.81-0ubuntu0.16.04.1 70.0.3538.77-0ubuntu0.16.04.1
  • fontconfig 2.11.94-0ubuntu1.1
  • Sprzęt graficzny: zintegrowana grafika Intel SkyLake (i5-6200U) + Nvidia GeForce 940M
    Obecnie mam nvidia-410zainstalowany sterownik, ale przełączyłem się na główny profil Intel. Jak mogę dalej rozwiązać i naprawić ten problem?

Zrobiłem profil wydajności z rozszerzeniem Gecko Profiler, zainstalowanym na czystym świeżym profilu Firefox na moim zwykłym koncie Ubuntu. Można go znaleźć tutaj: https://perfht.ml/2zpTWsh - Niereagujący przedział czasowy ze 100% użyciem procesora powinien w przybliżeniu odpowiadać podświetlonemu obszarowi na osi czasu Content Proc, od około 18 do 56 lat.

Utworzyłem raport o błędzie Mozilli dla tego problemu: https://bugzilla.mozilla.org/show_bug.cgi?id=1504461

Ważna aktualizacja: Najwyraźniej mój raport o błędzie był duplikatem https://bugzilla.mozilla.org/show_bug.cgi?id=1495900 , co wskazuje fontconfigna winowajcę. Wygląda na to, że uruchomienie Chromium w jakiś sposób zmienia konfigurację czcionek, co powoduje całkowite przeładowanie w Firefoksie. To pasuje do raportu profilowania wydajności, a także jest zgodne z tym, jak poprzednie aktualizacje pakietów czcionek wywołały ten sam rodzaj zawieszenia.

Jakieś pomysły, jak mogę sprawić, że trzy (Firefox, Chromium, fontconfig) zachowują się ładnie względem siebie?


Wszystko, co znajduję w wierszu 353 pliku ipc_channel_posix.cc, to zwracana prawda. Oczywiście połączenie odpoczynku przez rówieśników, które są śmiertelne, nigdy nie wróży dobrze. Niestety nie mogę odtworzyć tego problemu. Chciałbym móc bardziej pomóc.
Elder Geek

Miałem też sporadyczne problemy z wysokim cpu na Ubuntu, ale nie mogę powiedzieć, co go spowodowało lub go rozwiązało. Było wiele otwartych problemów, które śledziłem, związanych z wysokim wykorzystaniem procesora - więc uaktualnię i mam nadzieję. Obecnie nie mam żadnych problemów (a jeśli tak, to konkretna karta; więc ponowne uruchomienie przeglądarki lub zamknięcie karty rozwiązuje ją). Czy jest możliwe uaktualnienie z 16.04 do 18.10 (ponieważ oczywiście 16.04 pochodzi z 4/2016, a 18.10 jest z 8/2018) ...? I, fwiw, przerzuciłem się również na kubuntu, co wydaje mi się mniej boleć głowy. (Jeśli to możliwe, uruchom komputer z USB i eksperymentuj z obydwoma.)
Michael

Czasami mam uruchomionego Firefoksa, a następnie otwieram Chrome (wiem, że jest trochę inaczej) i nie zauważyłem dużego obciążenia procesora. Być może 5-sekundowy skok od 18% CPU do 30% CPU na 8 wirtualnych procesorach.
WinEunuuchs2Unix

Odpowiedzi:


17

TL; DR: Problem występuje fontconfigprzed wersją 2.13. Można to naprawić, aktualizując pakiet do wersji 2.13 lub nowszej (chociaż nie mogłem znaleźć odpowiedniego dostawcy). Ewentualnie sprawdź wszystkie foldery związane z czcionkami i pliki konfiguracyjne w katalogu domowym i sprawdź, czy usunięcie któregokolwiek z nich rozwiązuje problem. Dla mnie zmiana nazwy załatwiła ~/.fontssprawę.


Po zapoznaniu się z raportami błędów https://bugzilla.mozilla.org/show_bug.cgi?id=1495900 i https://bugzilla.mozilla.org/show_bug.cgi?id=1411338 staje się dość jasne, że problem musi być spowodowane przez fontconfig.

W jakiś sposób, gdy Chromium się uruchamia, powoduje zmianę bazy danych czcionek (???), co powoduje, że Firefox - jeśli jest obecnie uruchomiony - ponownie skanuje system plików w poszukiwaniu czcionek, co powoduje zużycie procesora i tymczasowe zawieszenie.

Najwyraźniej aktualizacja fontconfigpakietu z wersji 2.11 do 2.13 (wersja dostarczona np. W Ubuntu 18.10) powinna rozwiązać problem, ale nie znalazłem łatwego sposobu na uzyskanie tej wersji 16.04, bez zerwania zależności wielu innych pakietów, które zainstalowałem.

Ponieważ problem jest ograniczony do mojego konta użytkownika, sprawdziłem konfigurację czcionek lokalnych i foldery. Jest to dość bałagan z różnych katalogów związane font-szczerze mówiąc, w tym ~/.fonts, ~/.local/share/fonts, ~/.local/share-font-manager, ~/.config/font-manager, ~/.cache/font-manager, ~/.cache/fontconfigi kilka plików konfiguracyjnych i bardziej specyficzne dla aplikacji rzeczy czcionki.

Zacząłem od usunięcia (zmiany nazwy) ~/.fontsfolderu, ponieważ i tak nie zawiera on nic przydatnego, a proste touch ~/.fonts/Library/wcześniej spowodowało złe zachowanie Firefoksa. Po zniknięciu tego folderu pojawił się również problem podczas uruchamiania Chromium. \ o /


Ma sens, ponieważ nie mam ~/.fontskatalogu. Wszystkie czcionki znajdują się w katalogu systemowym.
WinEunuuchs2Unix

Podobno podobny lub nawet ten sam błąd można wywołać 18.04, uruchamiając również okno terminala głównego. strace wskazuje poważne operacje wejścia / wyjścia dotyczące plików czcionek. Co ciekawe, jest to problem nie tylko z samym Firefoksem, ale także z innymi aplikacjami xorg, więc zakładam, że problem dotyczy również Xorga. Niestety usunięcie wspomnianych katalogów nie pomogło.
stefanct

1
Jednak aktualizacja fontconfigdo wersji 2.13.0-5ubuntu3kosmicznej / 18.10 rozwiązała problem AFAICT. To był najdziwniejszy błąd od jakiegoś czasu ... dzięki za wskazówki.
stefanct

@stefanct, jak udało ci się go zainstalować bez zepsucia, próbowałem wymusić fontconfig i libfontconfig1 2.13 i apt chciałem usunąć całą DE, działającą 18.04
GM-Script-Writer-62850

@ GM-Script-Writer-62850 Nie pamiętam, aby zajmować się libfontconfig1konkretnie. Zasadniczo dodałem bioniczne mirrory do aptlisty i zastosowałem apt pin, aby uniknąć instalowania któregokolwiek z jego pakietów bez informowania o tym konkretnie. Potem po prostu używany aptjest -topcja tak: apt install fontconfig -tcosmic. Używam mate jak DE… może to nie działa tak łatwo z innymi DE.
stefanct

3

tło

Zaproponowano ten błąd Firefoksa 1492360: Wysokie użycie procesora podczas otwierania Firefoxa przed Chrome / Chrome . To jest duplikat błędu 1495900: Uruchomienie Chrome powoduje zawieszenie procesów zawartości Firefox na około dwie minuty, ponieważ winowajcą jest ponowne skanowanie czcionek FontConfig (FcInitReinitialize) .

Ale jestem też w Firefoksie:

Wersja Firefox.png

A kiedy otwieram Chrome:

Wersja Chrome.png

Nie widzę żadnego spadku wydajności procesorów.

Może to być sprzeczne z twoją moralnością, ale być może możesz spróbować zainstalować google-chrome-stabletak jak ja. Następnie wykonaj test ponownie. Jeśli nie ma wzrostu wykorzystania procesora do 100%, raport o błędzie można złożyć między Chromium a Chrome.

Jestem na Ubuntu 16.04.5 LTS. Chociaż jądro jest obecnie 4.14.78łańcuchem LTS, nie sądzę, żeby miało to coś wspólnego, ponieważ nie zauważyłem trafień procesora w poprzednich jądrach.

Jedyny raz, kiedy widzę wszystkie procesory na 100%, to podczas update-initramfs.


fontconfig Verson

W zgłoszeniu błędu ujawniono:

$ dpkg -l 'fontconfig*' | grep "^ii"
ii  fontconfig        2.12.6-0ubuntu2 amd64        generic font configuration library - support binaries
ii  fontconfig-config 2.12.6-0ubuntu2 all          generic font configuration library - configuration

W mojej wersji bez błędów (może być to spowodowane brakiem lokalnych czcionek):

$ dpkg -l 'fontconfig*' | grep "^ii"
ii  fontconfig        2.11.94-0ubuntu1.1 amd64        generic font configuration library - support binaries
ii  fontconfig-config 2.11.94-0ubuntu1.1 all          generic font configuration library - configuration

Jestem w 2.11.94wersji wcześniejszej niż 2.12wersja raportu o błędzie . W zgłoszeniu błędu aktualizacja 2.13jest zalecanym rozwiązaniem, ale OP wspomniane w komentarzach nie jest możliwe. Jako taka 2.11.94 może być opcją.


Cóż, nie, nie zamierzam instalować Chrome. Dowiedziałem się jednak, że sprawca jest fontconfigteraz. Prawdopodobnie masz różne (lub nie) lokalne czcionki zainstalowane na koncie użytkownika. Znalazłem obejście usuwania (zmiany nazwy) ~/.fontsfolderu, które rozwiązuje problem. Najwyraźniej aktualizacja również do fontconfig> = wersja 2.13 powinna to naprawić, ale nie mogę tego zrobić 16.04.
Bajt Dowódca

Tak, jedyne czcionki, które zainstalowałem, to kody kreskowe (kod 3 z 9), które są ttfużywane w edytorach tekstu / arkuszach kalkulacyjnych. Niestety, musiałeś rozwiązać swoje własne pytanie o nagrodę, ale jeśli to pociecha, to samo mi się przydarzyło w przeszłości.
WinEunuuchs2Unix

Dodałem obniżenie wersji fontconfigjako opcję dopasowania do mojej wersji, ale jest to „słaba nadzieja”, biorąc pod uwagę, że mogłeś stamtąd pochodzić. Jeśli masz link do instalacji lokalnych czcionek, spróbuję potwierdzić / odrzucić efekt starszej fontconfigwersji.
WinEunuuchs2Unix

Moja wersja też fontconfigjest 2.11.94-0ubuntu1.1taka, że ​​nie jest wolna od błędów. Chyba musi to być kombinacja zainstalowanych czcionek, niestandardowej konfiguracji czcionek i czarnej magii. Sprawdź moją odpowiedź :)
Byte Commander

1

Sądząc z dziennika, wygląda na to, że Firefox używa synchronicznego IPC (komunikacja między procesami) z jakiegoś powodu. W Firefoksie są flagi, aby jawnie włączyć synchroniczne IPC (np .: network.cookie.ipc.sync). Jeden z nich może być włączony. Można uzyskać do nich dostęp z about: config stronie

Opóźnienie byłoby wtedy wynikiem firefox czekającego na odpowiedź. Ponieważ nie ma obciążenia, gdy Chromium kończy uruchamianie lub nie działa aktywnie, istnieje natychmiastowa reakcja.

Powiązane: https://bugzilla.mozilla.org/show_bug.cgi?id=1331680


Zmieniłem wartość tej network.cookie.ipc.synckonfiguracji z fałszywej na prawdę iz powrotem, ponownie uruchamiając Firefoksa po każdej zmianie, ale wciąż to samo zachowanie :( Nadal nie rozumiem, dlaczego Firefox i Chromium w ogóle się komunikują, powinni pamiętać każdy biznes
Bajt Dowódca

1
Usunąłem to, ponieważ znalazłeś faktyczny powód niezwiązany, ale sądzę, że powinienem zostawić to tutaj jako prawdopodobną przyczynę?
Aswin B

0

Nie wiem, czy poniższa sugestia zadziała, czy nie. Możesz spróbować. Spróbuj całkowicie usunąć chrom i firefox (oczywiście zachowaj pliki .deb) za pomocą Menedżera pakietów Synaptic. Następnie sprawdź, czy nie ma żadnych zepsutych zależności. Napraw je za pomocą synaptic (jeśli istnieje). Teraz sprawdź zużycie procesora (używam Powertop). W końcu wykonaj świeżą ponowną instalację przeglądarek.

Uwaga: Te rzeczy są ogólnie tym, co robię w przypadku określonych nieprawidłowości. Pamiętam, że rok temu miałem do czynienia z nieco podobną kwestią. Zostało to rozwiązane w ten sposób.


Nie, czyszczenie i ponowna instalacja wszystkich pakietów Firefox * i Chrome * nic nie zmieniły.
Bajt Dowódca

Czy statystyki bezczynności i widżety statystyk częstotliwości Powertop pokazują 100% użycia po uruchomieniu chromu?
Hirak

Tak, pokazuje około 112% dla „C0 active” na każdym rdzeniu w statystykach bezczynności, a statystyki częstotliwości podają maksymalną częstotliwość (2,7 GHz) i 0% bezczynności w każdym rdzeniu. Karta przeglądu wyświetla wszystkie procesy Firefoksa na górze listy, z czasem obliczeń około 600-900 ms / s, ale zerowymi zdarzeniami / s.
Bajt Dowódca

0

Na Ubuntu 16.04 usunięcie pustego folderu ~/.local/share/fontsrozwiązało go w moim przypadku.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.