打开选项卡或重新启动时,Chrome冻结Ubuntu


23

昨天才开始发生这种情况。尽管我在Ubuntu中启用了自动更新,但我没有故意更改任何内容。

我可以启动chrome,它会工作一段时间,但是随后我打开一个标签页,它将冻结除鼠标之外的所有东西,但我仍然可以四处移动。我什么也做不了(包括切换到ctrl-alt-fX),所以唯一的选择是REISUB(或硬重置)。一段时间后重新启动chrome与打开标签页通常具有相同的效果。

我尝试完全清除chrome并删除settings文件夹,然后再重新安装最新版本,但这无济于事。禁用所有扩展都无济于事。

我正在运行最新的稳定的Ubuntu14。15GB RAM,Intel i7

另一个奇怪的是,我从chrome获得的通知窗口很小,通常会显示有关新电子邮件或任何插件通知的信息,现在只是一个黑框,没有内容。

我是否可以查看一下有关崩溃的日志?我检查了dmesg,但对我来说意义不大:

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]]

我没有测试铬,但我读过类似的情况。我读过的其他主题建议切换到Firefox或Chrome,但这不能解决问题。由于许多工作原因,我需要使用chrome,因为它可以在同一Ubuntu版本上在家正常工作,因此逻辑表明它是可修复的。

我认为它与chrome运行的持续时间有关,而不是ubuntu。如果我立即启动Ubuntu并启动chrome,则几分钟后它将在新标签页上崩溃。如果我在启动后没有启动chrome,并且仅在以后启动,它将正常启动,然后在运行了相同的几分钟后崩溃。

非常感谢


您的图形驱动程序正在运行。您的系统中装有哪种显卡?如果是Nvidia,请删除noveau驱动程序并安装nvidia驱动程序。
我们是博格2015年

Answers:


18

问题出在Google Chrome v44。您可以通过启动Chrome而无需gpu加速来继续工作:

google-chrome --disable-gpu

或者通过删除chrome并安装该版本之前的版本:

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

这样一来,您就可以使用Chrome浏览器,直到解决问题为止。

注意:您不能通过设置网址禁用gpu加速,因为它会立即冻结系统:

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

/ gpu不会使我的浏览器崩溃(下面的内容),但/ flags却崩溃了。卸载chrome(sudo apt-get remove google-chrome-stable)并尝试使用旧版本,将会在一段时间后返回报告。
Thomas Smart

谢谢,我现在不能自己尝试,但是最好还是要后悔(尽管使用--disable-gpu可以正常工作!我现在正在使用它)
Fabio

2
在最近的几天内对此进行了测试,似乎可以解决问题,不再崩溃。非常感谢!
Thomas Smart

对我来说,版本为46.0.2490.86(64位)。但是我可以访问/ gpu和/ flags。
Falci

1
发生在版本48.0.2564.116 Ubuntu 14.04(64位)Chromium和版本48.0.2564.116(64位)Chrome中
Elzo Valugi

6

我在使用Ubuntu 14.04和Chrome浏览器时遇到了同样的问题。我有nvidia geforce gtx 650显卡。问题似乎确实是Ubuntu的nouveau显卡驱动程序。对我来说,解决方法是转到系统设置->软件和更新->其他驱动程序,然后选择专有的nvidia驱动程序(或您拥有的显卡)而不是nouveau。这项更改似乎也解决了我在youtube的媒体播放器上遇到的一个问题(可能适用于其他媒体播放器,也可能不适用)。特别是快速移动的视频图像过去似乎在出现水平“故障线”的部分中进行更新。它似乎也消失了。


它似乎工作正常。
Falci

2

我卸载了Chrome,然后删除了我的所有配置文件,但都没有遇到相同的问题。这对我适用于Ubuntu 14.04 64位

google-chrome --disable-gpu

1

确保您Graphics Feature Status在浏览器中的状态良好。点击此链接进行验证:

chrome://gpu/

您应该看到所有绿色选项Hardware accelerated。如果不是,请转到

chrome://flags/

第一行是您启用Override software rendering list #ignore-gpu-blacklist的标志。

重新启动浏览器,然后再次检查您的Hardware accelerated状态。

另外,请确保在运行浏览器期间有足够的可用内存

$ free

/ gpu显示以下内容:图形功能状态画布:仅软件,不提供硬件加速Flash:硬件加速Flash Stage3D:硬件加速Flash Stage3D基准配置文件:硬件加速合成:硬件加速多个栅格线程:已启用栅格化:仅软件。禁用硬件加速线程化光栅化:启用视频解码:仅软件,不存在硬件加速视频编码:硬件加速WebGL:硬件加速/标志使系统崩溃
Thomas Smart

@ThomasSmart按照我的回答进行操作。---之后,启用标志覆盖软件渲染列表将重新启动浏览器并再次检查。
Vitaliy Kulikov

1
无法进入,因为转到/ flags使浏览器崩溃。上面有关安装较旧chrome的答案解决了该问题。
托马斯·斯玛特


1

我发布了LKML补丁来解决此错误,并被告知该问题已被识别为libdrm(不是Chrome)错误。

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

这个问题仅与相关libdrm 2.40.6,从上面的链接来看,还没有其他应用程序,只是Chrome会在nouveau中遇到相同的错误。

可以降级到的早期版本libdrm

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

如果要“锁定”,即再次停止系统自动升级到2.6.40,请执行

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

我已经成功降级到2.4.56,并且可以在启用gpu加速的情况下验证Chrome能否正常运行。


哎呀。发言时间过早。遵循了freedesktop人员的建议,并退出了libdrm 2.40.6,但是,我仍然收到错误消息.....我已经修改了我的视频驱动程序,让chrome可以做到这一点,而且看起来还不错...一件事虽然尚不清楚2.4.56是否不应出现此错误。有人告诉我放弃2.40.6-但这并不一定意味着我们并不不幸,并且2.4.56〜1并没有遇到同样的问题。
Bryan O'Donoghue 2015年

0

我在完全非Ubuntu的边缘自动构建的LFS系统上看到了一段时间(我承认这一个没有生命的怪人)。提示dmesg日志中有很多关于损坏的bos等的尖叫声。

对我来说,可以在大多数情况下保留硬件加速渲染的另一个解决方案是LIBGL_DRI3_DISABLE=1在启动Chromium之前将其导出到环境中。似乎DRI3尚未准备好迎接黄金时段...


0

删除并安装以前的版本有助于使用以下命令。我更换了i386而不是amd64,并且安装正常。谢谢您的帮助。

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

对我来说,问题是通过从chrome密码管理器中清除所有重复,过期,夸张的密码,未使用的密码等来解决的。看来,选择非常复杂的密码可能会导致整个操作系统崩溃或冻结,并且这也发生在Windows OS中。我所做的另一件事是将swappiness设置为0。


0

我在Ubuntu 14.10上遇到了同样的问题,解决方案是在每次吞噬CPU时都杀死Chrome,这是我的脚本,可以在我的情况下使用。

#!/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

我通常喜欢使用chrome,但如果有足够的运行时间,它是Ubuntu上唯一可以冻结整个OS的软件。在某些情况下,除了冷重启之外,我几乎无法执行任何操作。如果我已经打开了另一个TTY(Alt+ Ctrl+ Fn),那么我可能会或可能无法切换到issue killall chrome,这将立即修复操作系统。相同,如果我已经有一个SSH连接挂起。有时,鼠标光标会在屏幕上移动,但绝对没有其他响应。有时甚至没有鼠标光标。

无论如何,我通过实验发现RAM刚用完就用了chrome。一些可怕的内存泄漏。因此,为避免操作系统完全冻结到无法挽救的目的,我所做的只是一些DIY。我创建了一个简单的bash脚本,并将其安装在用户的crontab下。我每分钟运行一次。它会检查可用的RAM量,如果它超出我定义的限制(我使用200 MB),则会killall chrome连续发出3次(以防万一)。之后,您最终退出屏幕,但出现一个对话框,告诉您发生了什么事情,剩余的内存量以及从chrome中恢复后的内存量。脚本如下:

#!/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

因此,当我的RAM达到临界低位时,我的Chrome被杀死了,我看到了: 在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.