openSUSE 15.2 Firefox 78.0.2esr (64-bit) 打开印象笔记网页版卡死

多谢提醒,刚试了 firefox --safe-mode 关闭所有插件无改善,猜测可能是 openSUSE 里编译的 firefox 78 有问题?因为里边的清除历史记录菜单也无法正常使用,估计过两天就有更新修复了。

你用的是官方源还是 mozilla 源?

用的是官方源,刚刚试着换了 Index of /repositories/mozilla/openSUSE_Leap_15.2 的源 zypper in firefox-esr 后发现 firefox-esr 启动非常慢,只好又换回官方源的 firefox 了。 (:3」∠)

做了以下操作再启动 firefox,不起作用:
rm .mozilla/ -fr
rm ./cache/mozilla/ -fr

后来发现在 firefox 里打开印象笔记网页版后 CPU 占用率直接飙到 97%
emmmm…

你该不会是风滚草用了 Leap 的包吧,我这里都是正常的。

昨天重装了一遍 15.2 Leap,然后只添加了一个 packman 的源,未更新前 78.0.1 一切正常,zypper up 到 78.0.2 以后印象笔记、网易云音乐、Qoura 就卡死了。开始以为 firefox 是不支持 AMD 显卡硬件加速,尝试关掉还是同样卡顿,CPU占用率飙升至 90% 多。

两台硬件不同的电脑均无法重现。

情况:网易云音乐不播放,但不卡死。印象笔记网页版 & qoura 卡死,systemd-journald 和 firefox 的 CPU 占用率飙满。猜测是 firefox 不断发出 Aug 01 21:36:58 desktop firefox[32562]: g_output_stream_write_async: assertion ‘buffer != NULL’ failed 这条日志引发 systemd-journald 超载?

按照下面的方法在 /etc/default/grub 里的 GRUB_CMDLINE_LINUX_DEFAULT 变量后面添加 pcie_aspm=off 参数 grub2-mkconfig -o /boot/grub2/grub.cfg; grub2-install /dev/sda 重启电脑再试,无改善。。。




sudo zypper dup --from packman

之前只做了 sudo zypper dup,sudo zypper dup --from packman 提示升级 26 个解码方面的包,重启 firefox 网易云音乐恢复正常。印象笔记网页版和 qoura 一打开 systemd-journald 占用 99% CPU,可能是 78.0.2 上游代码里难以复现的奇怪 bug?感谢 hillwood 大佬花时间帮忙,78.0.3 升级包出来之前我先用 chromium 对付一下好啦。 :handshake: :handshake: :handshake:

@tcltk @hillwood @guoyunhe

遇到了同样的问题. 最近一周以上, firefox经常莫名其妙卡死.

firefox 版本 78.0.2esr (64 位)
GNOME 3.34.4
Kernel: 5.3.18-lp152.33-default
OS: openSUSE Leap 15.2 x86_64

执行过 zypper dup --from packman --allow-vendor-change 问题没有解决.

把firefox kill掉, journalctl cpu占用也会下来.

journalctl -xe 显示:

8月 05 00:19:35 zhiliao-hp firefox[31449]: g_output_stream_write_async: assertion 'buffer != NULL' failed
8月 05 00:19:35 zhiliao-hp firefox[31449]: g_output_stream_write_async: assertion 'buffer != NULL' failed
8月 05 00:19:35 zhiliao-hp firefox[31449]: g_output_stream_write_async: assertion 'buffer != NULL' failed
8月 05 00:19:35 zhiliao-hp firefox[31449]: g_output_stream_write_async: assertion 'buffer != NULL' failed
8月 05 00:19:35 zhiliao-hp firefox[31449]: g_output_stream_write_async: assertion 'buffer != NULL' failed
8月 05 00:19:35 zhiliao-hp firefox[31449]: g_output_stream_write_async: assertion 'buffer != NULL' failed
8月 05 00:19:35 zhiliao-hp firefox[31449]: g_output_stream_write_async: assertion 'buffer != NULL' failed
8月 05 00:19:35 zhiliao-hp firefox[31449]: g_output_stream_write_async: assertion 'buffer != NULL' failed
8月 05 00:19:35 zhiliao-hp firefox[31449]: g_output_stream_write_async: assertion 'buffer != NULL' failed
8月 05 00:19:35 zhiliao-hp firefox[31449]: g_output_stream_write_async: assertion 'buffer != NULL' failed

我在 AMD CPU + AMD GPU 和 AMD CPU + AMD APU 和 Intel CPU + Intel 630 三种不同的物理设备上一打开某些使用 Javascript 的页面就狂飙 g_output_stream_write_async: assertion ‘buffer != NULL’ failed 报错日志,怀疑是 Firefox 78.0.2 Javascript 引擎的问题。

我找到了一个可能可以的临时解决方案.

查看仓库中有firefox的哪些版本
sudo zypper se -s firefox

安装其他版本
sudo zypper in --oldpackage MozillaFirefox=78.0.1-lp152.2.5.1

正在测试.

MozillaFirefox-78.0.1-lp152.2.5.1.x86_64.rpm
回退firefox版本后, 仍然会卡住.

我再试试其他版本

先下载 Firefox 官方的压缩包,试试看会不会卡死。

如果会卡死,就是上游的锅,去 bugzilla.mozilla.org

如果不会卡死,就是 openSUSE 的锅,去 bugzilla.opensuse.org

目前耐心等 Firefox 79 中…

  1. CPU 占用

  2. gdb

我这里还是经常出现卡死的问题.
顺便简单学习了一下 gdb. 简单调试了一下发现 Firefox 似乎确实在不断的写 log.

gdb 和 x86-64 汇编我都不熟. 所以只能找到这里了.

我保存了 core dump 文件, 对于排查 bug 是否有帮助??

coredump 文件下载连接 https://share.weiyun.com/d0qivuSc

大致可以确定是 Firefox 的 wayland 相关代码的问题. 暂时不用 wayland 登陆 可以避免问题.

@tcltk

十分感谢,的确用的是 wayland。 :beers:

经过测试
openSUSE 15.2 的 GNOME 默认使用 Wayland 后端.

在用 GNOME on Wayland 登陆的时候, openSUSE 仓库中的 Firefox 默认启用 Wayland 相关的代码. 这样会遇到问题. (编译的时候 #ifdef MOZ_WAYLAND 为真)

在 GNOME on Wayland 登陆的时候, 用 Firefox 提供的二进制包, 非 openSUSE 仓库版本, 不会遇到问题, 这是因为 Firefox 提供的包默认没有启用 Wayland 相关的功能.

其实就是默认编译参数不一样.

可以通过 Firefox 中的 about:support 来查看当前所用的 窗口协议.
窗口协议 x11 这个时候没有问题.
窗口协议 wayland 这个时候有问题.