Firefox 崩溃且硬盘使用率为 100%

Firefox 崩溃且硬盘使用率为 100%

分配:Arch Linux x86_64

德语:Xfce4

当我使用 Firefox 或 dwb 网络浏览器浏览某些网页时,计算机会出现一段时间堆栈,然后浏览器崩溃。

我观察到,当这个问题发生时,硬盘使用率变成100%,然后程序崩溃。

我从终端打开这些程序,得到以下信息:

火狐浏览器:

$ firefox

(process:5167): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed

(firefox:5167): Gtk-CRITICAL **: IA__gtk_clipboard_set_with_data: assertion 'targets != NULL' failed
1434771392248   addons.update-checker   WARN    Update manifest for {972ce4c6-7e08-4474-a285-3208198ce6fd} did not contain an updates property
SystemMessageCache: initlibva info: VA-API version 0.37.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_0_35
libva info: va_openDriver() returns 0
Segmentation fault (core dumped)

德沃布:

$ dwb
No settingsfile found: Failed to open file '/home/me/.config/dwb/settings': No such file or directory
Using default values.
No keyfile found: No such file or directory
Using default values.

(dwb:5032): GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'WebKitDOMNode'

** (dwb:5032): CRITICAL **: WebKitDOMNode* webkit_dom_node_get_parent_node(WebKitDOMNode*): assertion 'WEBKIT_DOM_IS_NODE(self)' failed

(dwb:5032): GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'WebKitDOMNode'

** (dwb:5032): CRITICAL **: WebKitDOMNode* webkit_dom_node_get_parent_node(WebKitDOMNode*): assertion 'WEBKIT_DOM_IS_NODE(self)' failed

(dwb:5032): GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'WebKitDOMNode'

** (dwb:5032): CRITICAL **: WebKitDOMNode* webkit_dom_node_get_parent_node(WebKitDOMNode*): assertion 'WEBKIT_DOM_IS_NODE(self)' failed

(dwb:5032): GLib-GObject-WARNING **: invalid uninstantiatable type '<invalid>' in cast to 'WebKitDOMNode'

** (dwb:5032): CRITICAL **: WebKitDOMNode* webkit_dom_node_get_parent_node(WebKitDOMNode*): assertion 'WEBKIT_DOM_IS_NODE(self)' failed
Received SIGSEGV, trying to clean up.

Last 32 stack frames:

 32: dwb() [0x411bf3]
 31: dwb() [0x43057f]
 30: /usr/lib/libc.so.6(+0x335b0) [0x7faca9d945b0]
 29: /usr/lib/libgobject-2.0.so.0(g_type_check_instance_cast+0x4b) [0x7facab5e952b]
 28: dwb() [0x41446f]
 27: dwb() [0x414722]
 26: /usr/lib/libffi.so.6(ffi_call_unix64+0x4c) [0x7faca29071f0]
 25: /usr/lib/libffi.so.6(ffi_call+0x2f8) [0x7faca2906c58]
 24: /usr/lib/libgobject-2.0.so.0(g_cclosure_marshal_generic+0x1e4) [0x7facab5c6b04]
 23: /usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x145) [0x7facab5c62f5]
 22: /usr/lib/libwebkitgtk-1.0.so.0(+0x13eeb20) [0x7facae2e3b20]
 21: /usr/lib/libwebkitgtk-1.0.so.0(+0x7c03df) [0x7facad6b53df]
 20: /usr/lib/libwebkitgtk-1.0.so.0(+0x7c0879) [0x7facad6b5879]
 19: /usr/lib/libwebkitgtk-1.0.so.0(+0x7ba3c7) [0x7facad6af3c7]
 18: /usr/lib/libwebkitgtk-1.0.so.0(+0x7bbf90) [0x7facad6b0f90]
 17: /usr/lib/libwebkitgtk-1.0.so.0(+0x7d4ac5) [0x7facad6c9ac5]
 16: /usr/lib/libwebkitgtk-1.0.so.0(+0x7d5b32) [0x7facad6cab32]
 15: /usr/lib/libwebkitgtk-1.0.so.0(+0x977335) [0x7facad86c335]
 14: /usr/lib/libwebkitgtk-1.0.so.0(+0x96e7bd) [0x7facad8637bd]
 13: /usr/lib/libwebkitgtk-1.0.so.0(+0xbd5fd7) [0x7facadacafd7]
 12: /usr/lib/libwebkitgtk-1.0.so.0(+0xbdbf7b) [0x7facadad0f7b]
 11: /usr/lib/libwebkitgtk-1.0.so.0(+0xbdc039) [0x7facadad1039]
 10: /usr/lib/libwebkitgtk-1.0.so.0(+0x563479) [0x7facad458479]
  9: /usr/lib/libwebkitgtk-1.0.so.0(+0x584452) [0x7facad479452]
  8: /usr/lib/libglib-2.0.so.0(+0x4a3a3) [0x7facaa9d93a3]
  7: /usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x15d) [0x7facaa9d890d]
  6: /usr/lib/libglib-2.0.so.0(+0x49ce0) [0x7facaa9d8ce0]
  5: /usr/lib/libglib-2.0.so.0(g_main_context_iteration+0x2c) [0x7facaa9d8d8c]
  4: /usr/lib/libgio-2.0.so.0(g_application_run+0x20c) [0x7facab8b047c]
  3: dwb() [0x43c7a4]
  2: /usr/lib/libc.so.6(__libc_start_main+0xf0) [0x7faca9d81790]
  1: dwb() [0x411ce9]
Segmentation fault (core dumped)

答案1

包括 Firefox 在内的许多程序都会在用户的主目录或其子目录中写入各种文件(缓存、配置文件等),如果分区已满,它们就会崩溃,因为此类写入失败。

2个选项:

  1. 从您的 homedir 中删除一些内容以腾出更多空间(您至少需要 10MB 的空闲空间用于 Firefox,其他的可能更多,为了安全起见,我会选择几 GB)
  2. 如果程序为其文件使用子目录(例如 Firefox 和朋友的 ~/.mozilla)并且您在其他分区上有足够的可用空间,您可以在其他分区上创建这样的目录并将其符号链接到您的主目录中 - 但这并不简单维持这样的计划

即使获得足够的空间,程序也可能由于先前写入的部分/不完整文件而继续崩溃。在这种情况下,您必须:

  • 逐步清理每个有问题的文件,直到程序满意为止(非常乏味)
  • 重命名这些目录,允许程序以默认配置启动(它将重新创建目录),然后手动尝试从重命名的目录或一些备份(如果有的话)恢复各种配置和自定义(例如,对于火狐,使用食谱像这个: https://support.mozilla.org/en-US/kb/recovering-important-data-from-an-old-profile)。并非所有这些都可以恢复,YMMV。

一般来说,最好定期检查主目录中的可用空间并在需要时进行清理,以避免将来出现此类情况。

相关内容