GNOME Bugzilla – Bug 710239
mutter crashes on suspend
Last modified: 2014-12-30 02:21:12 UTC
Description of problem: I am experiencing a fatal error when I close the lid of my notebook and later open it again. When I open it, I am greeted with the "oh snap" screen of death. I cannot even click the Ok button, because mouse and keyboard don't seem to respond. systemd-coredumpctl reports that gnome-shell crashes during the suspend event: $ systemd-coredumpctl TIME PID UID GID SIG EXE Fr 2013-10-11 22:29:27 CEST 4631 1000 100 6 /usr/bin/gnome-shell Sa 2013-10-12 00:32:33 CEST 6804 1000 100 6 /usr/bin/gnome-shell Sa 2013-10-12 10:28:50 CEST 5048 1000 100 6 /usr/bin/gnome-shell So 2013-10-13 00:49:49 CEST 15668 1000 100 6 /usr/bin/gnome-shell Mo 2013-10-14 09:39:30 CEST 24738 1000 100 6 /usr/bin/gnome-shell Mo 2013-10-14 12:23:01 CEST 2006 1000 100 6 /usr/bin/gnome-session Mo 2013-10-14 20:32:57 CEST 6676 1000 100 6 /usr/bin/gnome-shell Mo 2013-10-14 21:42:26 CEST 9310 1000 100 6 /usr/bin/gnome-shell Di 2013-10-15 01:11:56 CEST 5137 1000 100 6 /usr/bin/gnome-shell Di 2013-10-15 08:47:15 CEST 8136 1000 100 6 /usr/bin/gnome-shell Di 2013-10-15 08:50:44 CEST 7098 1000 100 6 /usr/bin/gnome-session Mi 2013-10-16 09:15:02 CEST 2677 1000 100 6 /usr/bin/gnome-shell Here's the latest backtrace (sorry no debug symbols): $ systemd-coredumpctl -o core dump 2677 $ gdb core /usr/bin/gnome-shell (gdb) bt
+ Trace 232625
How reproducible: Always faults. I should mention that I have a special display configuration: the output of my Intel i7 on-board gpu is routed through the Nvidia gpu, using bumblebee, bbswitch and screenclone, so that I can make use of the display port that is attached to the Nvidia gpu, without actually using the Nvidia. (I use this to reduce head and conserve battery -- much better than using the Nvidia gpu directly!). So, I have the xserver-xorg-video-intel-2.20.14_virtual_crtc.patch installed (https://github.com/liskin/patches/blob/master/hacks/xserver-xorg-video-intel-2.20.14_virtual_crtc.patch), which is described here: http://zachstechnotes.blogspot.de/2012/04/post-title.html The patch creates a new virtual device named VIRTUAL1 that doesn't have a real connected status: $ xrandr Screen 0: minimum 320 x 200, current 1600 x 900, maximum 8192 x 8192 LVDS1 connected primary 1600x900+0+0 (normal left inverted right x axis y axis) 310mm x 174mm 1600x900 60.0*+ 40.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 disconnected (normal left inverted right x axis y axis) VIRTUAL1 unknown connection (normal left inverted right x axis y axis) 1600x1200 60.0 1400x1050 60.0 1280x960 60.0 800x600 56.2 640x480 59.9 Maybe this is the culprit. Steps to reproduce: Install xserver-xorg-video-intel-2.20.14_virtual_crtc.patch. Close the lid, open it again. Actual results: Fatal error. "Blue screen" of death. Expected results: Flawless continuation of operation. Additional info: The issue manifested after upgrading to 3.10. 3.8.x was unaffected. I'm using recent Arch Linux 64bit with gnome-shell/mutter 3.10.1.1-1.
Thanks for taking the time to report this bug. This particular bug has already been reported into our bug tracking system, but we are happy to tell you that the problem has already been fixed. It should be solved in the next software version. You may want to check for a software upgrade. *** This bug has been marked as a duplicate of bug 709009 ***
No, this is not the same as bug 709009, as the stack trace is completely different. Furthermore I use mutter 3.10.1.1 where 709009 is reported as fixed, so it cannot be the same error. Please re-open.
The trace is the same (or rather, it points to the same g_assert()). My bet is that you have a corrupted monitors.xml file that includes a configuration with 0 monitors. Please try again after removing it (it lives in ~/.config).
You are right! Removing ~/.config/monitors.xml helped - gnome-shell no longer crashes during suspend. Thanks! And sorry for making such a fuss. In case you're interested: here's the monitor.xml I removed. Maybe it helps tracking down why gnome-shell crashed when it was there: <monitors version="1"> <configuration> <clone>no</clone> <output name="LVDS1"> <vendor>LGD</vendor> <product>0x02df</product> <serial>0x00000000</serial> <width>1600</width> <height>900</height> <rate>60.028877258300781</rate> <x>0</x> <y>0</y> <rotation>normal</rotation> <reflect_x>no</reflect_x> <reflect_y>no</reflect_y> <primary>yes</primary> <presentation>no</presentation> </output> <output name="VIRTUAL1"> <vendor>unknown</vendor> <product>unknown</product> <serial>unknown</serial> </output> </configuration> </monitors>
OK.