GNOME Bugzilla – Bug 782385
X session crashes when undocking or switching off an external monitor
Last modified: 2018-05-02 18:28:21 UTC
I have an Intel Sandybridge based ThinkPad x220 running Fedora 25 that's docked with an external rotated monitor. Undocking the laptop causes gnome-shell on Xorg to crash. I am also unable to switch off the external monitor from Settings -> Display. The screen flickers and either the external monitor continues to remain enabled, or it also crashes the session. All the backtraces seem to indicate an X error. [rishi@kolache ~]$ uname -a Linux kolache 4.10.10-200.fc25.x86_64 #1 SMP Thu Apr 13 01:11:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux [rishi@kolache ~]$ rpm -q mutter gnome-shell xorg-x11-server-Xorg mutter-3.22.4-1.fc25.x86_64 gnome-shell-3.22.3-1.fc25.x86_64 xorg-x11-server-Xorg-1.19.3-1.fc25.x86_64 [rishi@kolache ~]$
+ Trace 237437
Thread 1 (Thread 0x7f9f29012f80 (LWP 2036))
The trace points to gdk_display_get_default_seat() not catching an X error - according to Carlos, this isn't supposed to happen, so moving to GDK.
We get a similar trace in ubuntu, but it's quite weird though, since As per fix on Bug 766233 the error is already trapped in GTK: https://github.com/GNOME/gtk/blob/master/gdk/x11/gdkdisplay-x11.c#L3056
+ Trace 238053
IIRC, there have been several changes to the plumbing recently, regarding un/plugging external screens. Do you know if this issue still occurs if Mutter, GNOME Shell, and so on are at their latest versions?
(In reply to Marco Trevisan (Treviño) from comment #2) > We get a similar trace in ubuntu, but it's quite weird though, since > > As per fix on Bug 766233 the error is already trapped in GTK: > https://github.com/GNOME/gtk/blob/master/gdk/x11/gdkdisplay-x11.c#L3056 The backtrace is probably bogus unless you're running gnome-shell with GDK_SYNCHRONIZE=1. A hint that this is the case is that BadValue is received, whereas XIGetClientPointer can't return that value, neither as per documentation nor X server code in git. What's probably happening here is that we are getting the error for an async call that we happened to issue before the XIGetClientPointer call, and get it here because this request is synchronous, thus the display is flushed.
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/gtk/issues/817.