我的问题是关于 gnome-shell 和触摸屏。
我有一台戴尔 xps 13,装有最新的 ubuntu 19.10。
在任何应用程序、游戏、浏览器等中使用触摸屏手势时,大约 2 或 3 分钟后,gnome-shell 就会崩溃。
我认为该问题是在 11 月底更新后首次出现的。
最佳/PS
系统日志说:
Jan 13 16:28:02 q gnome-shell[7160]: Object Meta.BackgroundActor (0x55db68663270), has been already deallocated — impossible to access it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Jan 13 16:28:02 q gnome-shell[7160]: JS ERROR: Error: Argument 'instance' (type interface) may not be null#012_init/GObject.Object.prototype.disconnect@resource:///org/gnome/gjs/modules/overrides/GObject.js:508:16#012_onDestroy@/usr/share/gnome-shell/extensions/desktop-icons@csoriano/desktopGrid.js:210:13#012DesktopGrid</<@/usr/share/gnome-shell/extensions/desktop-icons@csoriano/desktopGrid.js:115:45
Jan 13 16:28:02 q gnome-shell[7160]: == Stack trace for context 0x55db67641390 ==
Jan 13 16:28:02 q gnome-shell[7160]: #0 7fff8f0c2090 b resource:///org/gnome/gjs/modules/overrides/GObject.js:508 (7f297fcad8b0 @ 25)
Jan 13 16:28:02 q gnome-shell[7160]: #1 55db6bc1c968 i /usr/share/gnome-shell/extensions/desktop-icons@csoriano/desktopGrid.js:210 (7f297d9d1dc0 @ 75)
Jan 13 16:28:02 q gnome-shell[7160]: #2 55db6bc1c8f0 i /usr/share/gnome-shell/extensions/desktop-icons@csoriano/desktopGrid.js:115 (7f297d9d19d0 @ 12)
Jan 13 16:28:02 q gnome-shell[7160]: clutter_actor_iter_next: assertion 'ri->age == ri->root->priv->age' failed
Jan 13 16:28:02 q gnome-shell[7160]: GNOME Shell crashed with signal 11
Jan 13 16:28:02 q gnome-shell[7160]: == Stack trace for context 0x55db67641390 ==
Jan 13 16:28:02 q ibus-daemon[7215]: GChildWatchSource: Exit status of a child process was requested but ECHILD was received by waitpid(). See the documentation of g_child_watch_source_new() for possible causes.
Jan 13 16:28:02 q systemd[2088]: gnome-shell-x11.service: Main process exited, code=dumped, status=11/SEGV
Jan 13 16:28:02 q systemd[2088]: gnome-shell-x11.service: Failed with result 'core-dump'.
Jan 13 16:28:02 q systemd[2088]: gnome-shell-x11.service: Service has no hold-off time (RestartSec=0), scheduling restart.
Jan 13 16:28:02 q systemd[2088]: gnome-shell-x11.service: Scheduled restart job, restart counter is at 2.
Jan 13 16:28:02 q systemd[2088]: Stopped target GNOME X11 Session (session: ubuntu).
Jan 13 16:28:02 q systemd[2088]: Stopping GNOME X11 Session (session: ubuntu).
Jan 13 16:28:02 q systemd[2088]: Stopped target GNOME X11 Session.
Jan 13 16:28:02 q systemd[2088]: Stopping GNOME X11 Session.
Jan 13 16:28:02 q systemd[2088]: Stopped target GNOME Shell on X11.
Jan 13 16:28:02 q systemd[2088]: Stopping GNOME Shell on X11.
Jan 13 16:28:02 q systemd[2088]: Stopped GNOME Shell on X11.
答案1
虽然我不知道细节,因为我对 Xorg 代码没有任何了解或经验,但我在 HP Elitebook x360 1030 G2 上遇到了完全相同的问题。我只在几个地方找到了关于此崩溃的讨论:你的问题就在这里,这个 GTK 错误,Gnome 开发人员坚持认为这是别人的问题,并且这个 Xorg 错误。似乎一年前就已经有一个修复程序合并到 X 服务器中,但是直到最近才被反向移植(根据对 Xorg 错误的讨论)。这使得我的系统或多或少无法使用 Gnome,因此我也希望修复程序最终能够进入 Ubuntu。看来 Ubuntu 20.04 将包含带有修复程序的 xserver-xorg-core 软件包版本,因此更新到每日发布版本可能会暂时有所帮助。但是,这些每日发布版本(理论上)不如标准发布版本稳定,因此请在使用这条路线之前备份所有文件。不幸的是,除了每日发布版本之外,您唯一的好选择就是等待它被修复。
答案2
这次崩溃是由于 Mutter(GNOME shell 底层窗口管理器)中的一个错误造成的,作为 GNOME shell 维护者向我解释。根据您启用的 GNOME 扩展,系统日志中的确切消息可能会略有不同,因此如果您有略微不同的日志但症状相同,则可能是同一个问题。
可以追踪 mutter 中的最终根源错误这里,现在有一个修复程序,我已经测试了一天,似乎有效。当任何人读到这篇文章时,补丁可能已经部署了,但我还是会解释如何安装它。
你可以通过运行来检查mutter
和包的版本。你应该看到类似这样的内容:libmutter
dpkg -l | grep mutter
ii gir1.2-mutter-6:amd64 3.36.4-0ubuntu0.20.04.2 amd64 GObject introspection data for Mutter
ii libmutter-6-0:amd64 3.36.4-0ubuntu0.20.04.2 amd64 window manager library from the Mutter window manager
ii mutter 3.36.4-0ubuntu0.20.04.2 amd64 Example window manager using GNOME's window manager library
ii mutter-common 3.36.4-0ubuntu0.20.04.2 all shared files for the Mutter window manager
最低版本libmutter
应为 ,3.36.4
以便您获得修复。如果您将来阅读本文并遇到类似症状,但您的libmutter
版本更高,则此答案与您无关。否则,请打开软件更新管理器(software-properties-gtk
,也称为“软件和更新”)并激活预发布更新,如以下屏幕截图所示:
您现在可以libmutter
使用以下命令进行升级sudo apt install libmutter-6-0/focal-proposed
,如果你使用的是 Ubuntu 20.04, “Focal Fossa”。对于其他版本的 Ubuntu,请替换focal
相应的形容词,例如bionic
“Bionic Beaver”。如果版本低于上面显示的版本,您可能还需要升级mutter
,我不确定。
安装更新后重新启动,如果愿意,您可以在之后的软件和更新程序中禁用预发布更新。