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

openSUSE 15.2 Firefox 78.0.2esr (64-bit) 打开印象笔记网页版 100% 卡死,要用 killall firefox 强制退出才行,网易云音乐网页版无法播放,用 Firefox 68/Chromium 打开则一切正常。

sudo journalctl --since today 的报错信息:

Aug 01 21:36:58 desktop firefox[32562]: g_output_stream_write_async: assertion 'buffer != NULL' failed

strace firefox 的报错信息:

write(6, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x7fb57ea1168c, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7fb57ea11630, FUTEX_WAKE_PRIVATE, 1) = 1
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}, {fd=12, events=POLLIN}, {fd=13, events=POLLIN}, {fd=32, events=POLLIN}], 5, 0) = 2 ([{fd=4, revents=POLLIN}, {fd=6, revents=POLLIN}])
read(6, "\1\0\0\0\0\0\0\0", 16)         = 8
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
getpid()                                = 7350
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1203, ...}) = 0
write(2, "\n(firefox:7350): GLib-GIO-\33[1;35"..., 136
(firefox:7350): GLib-GIO-CRITICAL **: 22:54:41.488: g_output_stream_write_async: assertion 'buffer != NULL' failed) = 136
write(6, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x7fb57ea11688, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7fb57ea11630, FUTEX_WAKE_PRIVATE, 1) = 1
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}, {fd=12, events=POLLIN}, {fd=13, events=POLLIN}, {fd=32, events=POLLIN}], 5, 0) = 2 ([{fd=4, revents=POLLIN}, {fd=6, revents=POLLIN}])
read(6, "\1\0\0\0\0\0\0\0", 16)         = 8
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
getpid()                                = 7350
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1203, ...}) = 0
write(2, "\n(firefox:7350): GLib-GIO-\33[1;35"..., 136
(firefox:7350): GLib-GIO-CRITICAL **: 22:54:41.488: g_output_stream_write_async: assertion 'buffer != NULL' failed) = 136
write(6, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x7fb57ea1168c, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7fb57ea11630,   FUTEX_WAKE_PRIVATE, 1) = 1
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}, {fd=12, events=POLLIN}, {fd=13, events=POLLIN}, {fd=32, events=POLLIN}], 5, 0) = 2 ([{fd=4, revents=POLLIN}, {fd=6, revents=POLLIN}])
read(6, "\1\0\0\0\0\0\0\0", 16)         = 8
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
getpid()                                = 7350
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1203, ...}) = 0
write(2, "\n(firefox:7350): GLib-GIO-\33[1;35"..., 136
(firefox:7350): GLib-GIO-CRITICAL **: 22:54:41.489: g_output_stream_write_async: assertion 'buffer != NULL' failed) = 136
write(6, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x7fb57ea11688,   FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7fb57ea11630, FUTEX_WAKE_PRIVATE, 1) = 1
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}, {fd=12, events=POLLIN}, {fd=13, events=POLLIN}, {fd=32, events=POLLIN}], 5, 0^C) = 2 ([{fd=4, revents=POLLIN}, {fd=6, revents=POLLIN}])
strace: Process 7350 detached

风滚草 Firefox 79 没问题,建议升级试试。

另外你试试 firefox --safe-mode 启动,这样会关闭所有插件。有的时候插件会导致问题。然后排查一下是哪个插件的问题。

多谢提醒,刚试了 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