Chrome zawiesza Ubuntu podczas otwierania karty lub ponownego uruchamiania


23

To zaczęło się wczoraj dziać. Świadomie niczego nie zmieniłem, chociaż mam włączoną automatyczną aktualizację w Ubuntu.

Mogę dobrze uruchomić chrome, to będzie działać przez chwilę, ale potem otworzę kartę i zamrozi wszystko oprócz myszy, którą nadal mogę się poruszać. Nic nie mogę zrobić (włączając przejście na ctrl-alt-fX), więc jedyną opcją jest REISUB (lub twardy reset). Ponowne uruchomienie Chrome po pewnym czasie ma zwykle taki sam efekt jak otwarcie karty.

Próbowałem całkowicie wyczyścić Chrome i usunąć folder ustawień przed ponowną instalacją najnowszej wersji, ale to nie pomogło. Wyłączenie wszystkich rozszerzeń nie pomogło.

Korzystam z najnowszej stabilnej pamięci RAM Ubuntu 14. 15 GB, Intel i7

Kolejną osobliwością są małe okna powiadomień, które otrzymuję od Chrome, które zwykle wyświetlałyby informacje o nowym e-mailu lub dowolnym powiadomieniu wtyczki, teraz jest to tylko czarny blok, brak treści.

Czy jest dziennik, w którym mogę znaleźć informacje na temat awarii? Sprawdziłem dmesg, ale to niewiele dla mnie znaczy:

dmesg | grep chrome

[  132.889813] nouveau E[chrome[2606]] multiple instances of buffer 125 on validation list
[  132.889818] nouveau E[chrome[2606]] validate_init
[  132.889819] nouveau E[chrome[2606]] validate: -22
[  422.162086] nouveau E[chrome[2606]] multiple instances of buffer 121 on validation list
[  422.162092] nouveau E[chrome[2606]] validate_init
[  422.162094] nouveau E[chrome[2606]] validate: -22
[  422.178322] nouveau E[  PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[  422.201707] nouveau E[  PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[  422.202702] nouveau E[  PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[  422.220245] nouveau E[  PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[  422.236486] nouveau E[  PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[  422.269815] nouveau E[  PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[  422.302031] nouveau E[  PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[  422.334962] nouveau E[  PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[  422.336436] nouveau E[  PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[  422.351666] nouveau E[  PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]
[  422.368438] nouveau E[  PGRAPH][0000:01:00.0] TRAP ch 5 [0x007f6f9000 chrome[2606]]

Nie testowałem chromu, czytałem, że podobnie dzieje się w tym. Inne tematy, które przeczytałem, sugerują przejście na Firefox lub chrom, ale to nie rozwiązuje problemu. Potrzebuję chrome z wielu powodów, a ponieważ działa dobrze w domu na tej samej wersji Ubuntu, więc logika sugeruje, że można to naprawić.

Myślę, że jest to bardziej powiązane z czasem działania Chrome, a nie Ubuntu. Jeśli uruchomię Ubuntu i od razu uruchomię Chrome, po kilku minutach zawiesi się na nowej karcie. Jeśli nie uruchomię Chrome po uruchomieniu i uruchomię go później, uruchomi się dobrze, a następnie zawiesi po tym samym czasie przez kilka minut.

Wielkie dzięki


Twój sterownik grafiki działa. Którą kartę graficzną posiadasz w swoim systemie? Jeśli Nvidia, usuń sterownik noveau i zainstaluj sterownik nvidia.
Jesteśmy Borg,

Odpowiedzi:


18

Problem dotyczy Google Chrome v44. Możesz kontynuować pracę, uruchamiając chrome bez przyspieszania GPU:

google-chrome --disable-gpu

Lub usuwając chrome i instalując wersję tuż przed tą:

sudo apt-get remove google-chrome-stable
wget http://mirror.pcbeta.com/google/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_43.0.2357.81-1_amd64.deb
sudo dpkg -i google-chrome-stable_43.0.2357.81-1_amd64.deb

Umożliwi to korzystanie z Chrome do momentu opublikowania poprawki.

Uwaga: nie można wyłączyć przyspieszania GPU z adresu URL ustawień, ponieważ spowoduje to natychmiastowe zawieszenie systemu:

# DON'T go to (this might crash the system):
chrome://gpu
# or (this will definitely crash the system)
chrome://flags

/ gpu nie spowodowało awarii mojej przeglądarki (zawartość poniżej), ale / flagi tak. Odinstalowany chrome (sudo apt-get remove google-chrome-stable) i wypróbowanie starszej wersji, zgłosi się za chwilę.
Thomas Smart

Dzięki, sam nie mogę tego teraz wypróbować, ale lepiej być bezpiecznym niż żałować (chociaż działa opcja --disable-gpu! Używam jej teraz)
Fabio

2
przetestowałem to przez kilka ostatnich dni i wydaje się, że to załatwiło sprawę, żadnych awarii. Wielkie dzięki!
Thomas Smart

Zdarza mi się, wersja 46.0.2490.86 (64-bitowa). Ale jestem w stanie uzyskać dostęp do / gpu i / flags.
Falci

1
dzieje się w wersji 48.0.2564.116 Ubuntu 14.04 (64-bit) Chromium i wersji 48.0.2564.116 (64-bit) Chrome
Elzo Valugi

6

Mam ten sam problem z Ubuntu 14.04 i Chrome. Mam kartę graficzną NVIDIA GeForce GTX 650. Problemem wydaje się być nouveau sterownik karty graficznej Ubuntu. Rozwiązaniem było dla mnie przejście do Ustawień systemu -> Oprogramowanie i aktualizacje -> Dodatkowe sterowniki i wybranie zastrzeżonego sterownika NVIDIA (lub karty, którą posiadasz) zamiast Nouveau. Wydaje się, że ta zmiana rozwiązała problem, który miałem z odtwarzaczem mediów YouTube (może, ale nie musi dotyczyć innych odtwarzaczy multimediów). Szczególnie szybko poruszający się obraz wideo wydawał się aktualizować w sekcjach z pojawiającymi się poziomymi „liniami błędów”. Wygląda na to, że już go nie ma.


Wygląda na to, że działa dobrze.
Falci

2

Odinstalowuję Chrome, a następnie usuwam wszystkie moje pliki konfiguracyjne i nic nie ma tego samego problemu. Działa to dla mnie w Ubuntu 14.04 64 bity

google-chrome --disable-gpu

1

Upewnij się, że masz dobry status Graphics Feature Statusw przeglądarce. Kliknij ten link, aby sprawdzić:

chrome://gpu/

Powinieneś zobaczyć wszystkie zielone opcje Hardware accelerated . Jeśli nie, przejdź do

chrome://flags/

Pierwszy wiersz to twoja flaga do włączenia Override software rendering list # ignore-gpu-blacklist .

Uruchom ponownie przeglądarkę i sprawdź ponownie swój Hardware acceleratedstatus.

Upewnij się również, że masz wystarczającą ilość wolnej pamięci podczas uruchamiania przeglądarki

$ free

/ gpu pokazuje to: Stan funkcji grafiki Kanwa: tylko oprogramowanie, przyspieszenie sprzętowe niedostępne Flash: przyspieszenie sprzętowe Flash Stage3D: przyspieszenie sprzętowe Flash Stage3D Profil podstawowy: przyspieszenie sprzętowe Komponowanie: przyspieszenie sprzętowe Wiele wątków rastrowych: Włączona rasteryzacja: tylko oprogramowanie. Akceleracja sprzętowa wyłączona Rasteryzacja wątków: Włączona Dekodowanie wideo: Tylko oprogramowanie, akceleracja sprzętowa niedostępna Kodowanie wideo: Akceleracja sprzętowa WebGL: Akceleracja sprzętowa / flagi powoduje awarię systemu
Thomas Smart

@ ThomasSmart postępuj zgodnie z instrukcjami na mojej odpowiedzi. --- po, Włącz opcję Zastąp flagę Oprogramowanie do renderowania listy renderowania uruchom ponownie przeglądarkę i sprawdź ponownie.
Vitaliy Kulikov

1
nie można śledzić, ponieważ przejście do / flagi spowodowało awarię przeglądarki. powyższa odpowiedź na temat instalacji starszego Chrome rozwiązała problem.
Thomas Smart

1

Rozwiązałem go, zastępując sterownik karty graficznej nouveau sterownikami nvidia, jak opisano tutaj .

Nie google-chrome --disable-gpuwymagane


1

Wysłałem łatkę do LKML, aby obejść ten błąd i powiedziano mi, że problem został zidentyfikowany jako błąd libdrm (nie Chrome).

https://bugs.freedesktop.org/show_bug.cgi?id=89842#c19

Ten problem dotyczy libdrm 2.40.6tylko i z powyższego linku są inne aplikacje, a nie tylko Chrome, który może napotkać ten sam błąd w przypadku nouveau.

Możliwe jest przejście na poprzednią wersję libdrm.

sudo apt-get install libdrm2=2.4.56-1~ubuntu2

Jeśli chcesz „zablokować”, tzn. Zatrzymać automatyczne aktualizowanie systemu do wersji 2.6.40, zrób to ponownie

sudo echo "package libdrm2" | sudo dpkg –set-selections

Z powodzeniem obniżyłem wersję do 2.4.56 i mogę sprawdzić, czy Chrome działa zgodnie z oczekiwaniami, przy włączonym przyspieszaniu GPU.


Ups Mówiłem za wcześnie. Postępowałem zgodnie z radą osób korzystających z Freedesktop i przełączyłem się z libdrm 2.40.6, ale wciąż pojawia się komunikat o błędzie ... Zmodyfikowałem sterownik wideo, aby umożliwić Chrome i to wydaje się dobre ... jedna rzecz nie jest jednak jasne, czy 2.4.56 nie powinien mieć tego błędu. Powiedziano mi, abym przeszedł z wersji 2.40.6 - ale to niekoniecznie oznacza, że ​​nie mamy pecha, a 2.4.56 ~ 1 nie cierpi z powodu tego samego problemu.
Bryan O'Donoghue

0

Widziałem to jakiś czas temu na moim całkowicie nieobsługiwanym przez Ubuntu, najnowocześniejszym, automatycznym systemie LFS ( przyznaję, że jestem dziwakiem bez życia). Sprowokuj wiele krzyków w dzienniku dmesg o uszkodzonym bos itp.

Dla mnie innym rozwiązaniem, które pozwoliło mi zachować renderowanie przyspieszone sprzętowo w większości sytuacji, było wyeksportowanie LIBGL_DRI3_DISABLE=1do środowiska przed uruchomieniem Chromium. Wygląda na to, że DRI3 nie jest jeszcze gotowy na najwyższy czas ...


0

Usunięcie i zainstalowanie poprzedniej wersji pomogło przy użyciu następujących poleceń. Zastąpiłem i386 zamiast amd64 i instalacja przebiegła pomyślnie. dzięki za pomoc.

sudo apt-get remove google-chrome-stable
wget http://mirror.pcbeta.com/google/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_43.0.2357.81-1_amd64.deb
sudo dpkg -i google-chrome-stable_43.0.2357.81-1_amd64.deb

0

Dla mnie problem został rozwiązany przez wyczyszczenie z menedżera haseł chrome wszystkich haseł, które były duplikatami, wygasły, przesadzone długie, nieużywane i tak dalej. Wygląda na to, że wybranie bardzo skomplikowanych haseł powoduje awarię lub zawieszanie całego systemu operacyjnego, co zdarza się również w systemie Windows. Kolejną rzeczą, którą zrobiłem, było ustawienie swapiness na 0.


0

Taki sam problem występował na moim Ubuntu 14.10, rozwiązaniem jest po prostu zabijanie Chrome'a ​​za każdym razem, gdy zjada procesor, oto mój skrypt, aby to zrobić, działał w moim przypadku.

#!/bin/sh

#ps aux  | awk 'BEGIN { sum = 0 }  { sum += $3 }; END { print sum }'

# DON VI PHAN TRAM
MAX_ALLOWED_CPULOAD=50
MAX_ALLOWED_MEMLOAD=50
core_num=$(nproc)
MAX_ALLOWED_CPULOAD=$(expr $MAX_ALLOWED_CPULOAD \* $core_num)

counter=0
continue_high_cpuload_count=0
max_continue_alowed=10

print_cpu_load_with_pid(){
    cpuload=$(ps aux  | awk 'BEGIN { sum = 0 }  { sum += $3 }; END { print sum }')
    cpuloadpercent=$(echo "100 * $cpuload / $MAX_ALLOWED_CPULOAD" | bc)
    echo "checked at $counter times, cpuload = $cpuloadpercent %"
    counter=$((counter+1))
    #$(echo 12.45 10.35 | awk '{if ($1 < $2) print $1; else print $2}')
    decide=$(echo $cpuload $MAX_ALLOWED_CPULOAD | awk '{if ($1 > $2) print "true"; else print "false"}')
    if [ "true" = "$decide" ] ; then
        continue_high_cpuload_count=$((continue_high_cpuload_count+1))  
        echo "High cpuload detected, continue_counter = $continue_high_cpuload_count"
    elif [$continue_high_cpuload_count -gt 0 ]; then
        continue_high_cpuload_count=0
        echo "No longer detect hight cpu, reseting continue_counter..."
    fi

    if [ "$continue_high_cpuload_count" = "$max_continue_alowed"  ] ; then
        echo "Killing chrome..."
        kill -9 `ps -aux|grep chrome|awk '{print$2}'`
    fi
}

while [ : ];do
    print_cpu_load_with_pid
    sleep 2
done

0

Zasadniczo lubię używać chrome, ale jest to jedyne oprogramowanie na moim Ubuntu, które gwarantuje zatrzymanie całego systemu operacyjnego, jeśli ma wystarczająco dużo czasu. I przy niektórych okazjach dosłownie nie mogę nic na to poradzić poza zimnym restartem. Jeśli miałem już otwarty inny TTY ( Alt+ Ctrl+ Fn), mogę, ale nie muszę, przejść do tego problemu killall chrome, co natychmiast naprawi system operacyjny. To samo, jeśli miałem już oczekujące połączenie SSH. Czasami kursor myszy porusza się po ekranie, ale absolutnie nic innego nie reaguje. Czasem nawet kursor myszy.

W każdym razie dowiedziałem się eksperymentalnie, że kończy się pamięć RAM, a chrom jest właśnie w użyciu; Trochę okropnych wycieków pamięci. Więc to, co zrobiłem, aby uniknąć całkowitego zamrożenia mojego systemu operacyjnego do punktu, w którym nie ma ratunku, jest czymś w rodzaju DIY. Stworzyłem prosty skrypt bash i zainstalowałem go pod crontab mojego użytkownika. Uruchamiam to co minutę. Sprawdza, czy ilość wolnej pamięci RAM jest wolna, a jeśli przekroczy limit zdefiniowany przeze mnie (używam 200 MB), wydaje killall chrome3 razy z rzędu (na wszelki wypadek). Po tym kończy się chrom z ekranu, ale pojawia się okno dialogowe z informacją o tym, co się stało, ile pamięci pozostało i ile masz teraz po odzyskaniu go z Chrome. Skrypt wygląda następująco:

#!/bin/sh
#SETTINGS:
MIN_RAM_BEFORE_KILLING_CHROME_MB=200
#DATA COLLECTION:
FREE_RAM=$(free -mo | tr -s ' ' | cut -d ' ' -f 4 | awk '$0 == "free" {i=1;next};i && i++ <= 1')
echo "Free RAM: $FREE_RAM"
#ACTION:
if [ $FREE_RAM -lt $MIN_RAM_BEFORE_KILLING_CHROME_MB ]; then
    echo "time to kill chrome...";
    killall chrome &
    sleep 1
    killall chrome &
    sleep 1
    killall chrome &
    FREE_RAM2=$(free -mo | tr -s ' ' | cut -d ' ' -f 4 | awk '$0 == "free" {i=1;next};i && i++ <= 1')
    DISPLAY=:0 nohup zenity --info --text="Chrome was killed, because your RAM had only $FREE_RAM MB free.\nNow you have $FREE_RAM2 MB free."  2>/dev/null &
else
    echo "Not yet. Will kill chrome when RAM goes under $MIN_RAM_BEFORE_KILLING_CHROME_MB.";    
fi;
#INSTALLATION:
# crontab -u <username> -e
# then add this script

Więc kiedy osiągnę krytycznie niski poziom pamięci RAM, mój chrom jest zabity i widzę to: wprowadź opis zdjęcia tutaj

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.