After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 727365 - Sometimes, when I alt+tab to switch apps, my shell freezes completely
Sometimes, when I alt+tab to switch apps, my shell freezes completely
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
3.13.x
Other Linux
: Normal major
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
: 699488 727653 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2014-03-30 21:31 UTC by Elad Alfassa
Modified: 2014-08-23 11:43 UTC
See Also:
GNOME target: 3.14
GNOME version: ---



Description Elad Alfassa 2014-03-30 21:31:18 UTC
Sometimes, when I alt+tab to switch apps, my shell freezes completely. I can't click anything, can't do anything at all (not in the shell itself, not on window decorators, not inside windows).
When this happens, I get these in my log:

Mar 31 00:24:21 weatherwax gnome-session[1413]: (gnome-shell:1572): Clutter-WARNING **: Spurious clutter_actor_allocate called for actor 0x69c87a0/trough which isn't a descendent of the stage!
Mar 31 00:24:21 weatherwax gnome-session[1413]: (gnome-shell:1572): Clutter-WARNING **: Spurious clutter_actor_allocate called for actor 0x69c9a50/vhandle which isn't a descendent of the stage!

and I have to switch to a VT, kill my shell with -9, and press ctrl+alt+f1 again to return to my session. If I don't kill the shell after the VT switch and then switch back, I get a black screen with a mouse cursor. If it happens again after I return to my session and alt+tab, killing the shell will bring the "Failwhale" screen and that's kinda annoying.
Comment 1 Adam Williamson 2014-06-17 22:06:31 UTC
I have also seen this (I've been seeing it in Rawhide for quite some time, in 3.12 and 3.13). Not been able to track it down precisely, though. For me it's only a temporary pause - after some seconds, the system comes 'back to life', even the alt-tab operations (and any others I did blind while the system was frozen) take effect.
Comment 2 Elad Alfassa 2014-06-20 18:52:52 UTC
It has been happening for a while now, just encountered this again today. I didn't have to switch to a VT this time, just waited few seconds and it freed itself like Adam described.

I'm not so sure the log messages I mentioned before are actually relevant. When it happened now I got


Jun 20 21:48:24 weatherwax rhythmbox.desktop[4032]: (rhythmbox:4032): Gtk-WARNING **: Duplicate child name in GtkStack: Add to Playlist
Jun 20 21:48:25 weatherwax gnome-session[1605]: (gnome-shell:1719): Clutter-CRITICAL **: clutter_layout_manager_get_child_meta: assertion 'CLUTTER_IS_LAYOUT_MANAGER (manager)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: (gnome-shell:1719): Clutter-CRITICAL **: clutter_layout_manager_get_child_meta: assertion 'CLUTTER_IS_LAYOUT_MANAGER (manager)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: (gnome-shell:1719): Clutter-CRITICAL **: clutter_layout_manager_get_child_meta: assertion 'CLUTTER_IS_LAYOUT_MANAGER (manager)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: (gnome-shell:1719): Clutter-CRITICAL **: clutter_layout_manager_get_child_meta: assertion 'CLUTTER_IS_LAYOUT_MANAGER (manager)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: (gnome-shell:1719): Clutter-CRITICAL **: clutter_layout_manager_get_child_meta: assertion 'CLUTTER_IS_LAYOUT_MANAGER (manager)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: (gnome-shell:1719): Clutter-CRITICAL **: clutter_layout_manager_get_child_meta: assertion 'CLUTTER_IS_LAYOUT_MANAGER (manager)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: (gnome-shell:1719): Clutter-CRITICAL **: clutter_layout_manager_get_child_meta: assertion 'CLUTTER_IS_LAYOUT_MANAGER (manager)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: (gnome-shell:1719): Clutter-CRITICAL **: clutter_layout_manager_get_child_meta: assertion 'CLUTTER_IS_LAYOUT_MANAGER (manager)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: (gnome-shell:1719): Clutter-CRITICAL **: clutter_layout_manager_get_child_meta: assertion 'CLUTTER_IS_LAYOUT_MANAGER (manager)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: (gnome-shell:1719): Clutter-CRITICAL **: clutter_layout_manager_get_child_meta: assertion 'CLUTTER_IS_LAYOUT_MANAGER (manager)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: (gnome-shell:1719): Clutter-CRITICAL **: clutter_layout_manager_get_child_meta: assertion 'CLUTTER_IS_LAYOUT_MANAGER (manager)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Jun 20 21:48:25 weatherwax gnome-session[1605]: Window manager warning: Log level 8: g_object_set: assertion 'G_IS_OBJECT (object)' failed
Comment 3 Adam Williamson 2014-06-23 16:29:10 UTC
This just happened to me again; the only log message that looks at all relevant is:

Jun 23 09:27:13 adam.happyassassin.net gnome-session[2241]: Window manager warning: last_focus_time (1942085) is greater than comparison timestamp (1940155).  This most likely represents a buggy client sending inaccurate timestamps in messages such as _NET_ACTIVE_WINDOW.  Trying to work around...
Comment 4 Elad Alfassa 2014-08-02 15:43:20 UTC
It seems that it usually happens when I alt tab from rhytmbox while it's playing music:

Seems to be reproducible easily:

1. Music is playing in rhythmbox
2. Click somewhere in the rhythmbox window or title
3. alt+tab

I'm not sure how to debug this further.
Comment 5 Adam Williamson 2014-08-02 17:52:05 UTC
Just to confirm this is still happening to me too, saw it twice yesterday IIRC.
Comment 6 Jasper St. Pierre (not reading bugmail) 2014-08-03 19:43:23 UTC
I can't seem to reproduce this, even with rhythmbox.
Comment 7 Elad Alfassa 2014-08-03 19:48:09 UTC
Could it be related to graphics hardware? I'm using radeon here. I can't remember if it happened on intel too.
Comment 8 Adam Williamson 2014-08-04 05:14:12 UTC
nouveau, here.
Comment 9 Owen Taylor 2014-08-13 07:49:29 UTC
If someone can attach to gnome-shell with gdb while it's hung and get a backtrace, that would be very helpful!
Comment 10 Jasper St. Pierre (not reading bugmail) 2014-08-15 12:48:18 UTC
I think I found it. Though testing is *really* helpful:

https://git.gnome.org/browse/mutter/commit/?id=bb977c0

A possible repro: When clicking on an unfocused window with an odd modifier combination (e.g. having Control held), we'd stay in a synchronous pointer grab. "Hm, clicking on this window doesn't work, let me try Alt-Tab"... which takes an async keyboard grab on the *root* window, and so now X has these two grabs: sync pointer, async keyboard on an app window, and async pointer, async keyboard on the root window, and it gets *really* confused and just sends us no events.

I'm not sure if it's actually an X server bug -- it might be specified behavior.
Comment 11 Adam Williamson 2014-08-15 13:48:38 UTC
I'm on vacation right now, but I'll try and remember to have a look into this when I get back. I'm not sure I only saw this when I did what you described (clicking on unfocused windows with a modifier key held), but it's possible, I guess.
Comment 12 Jasper St. Pierre (not reading bugmail) 2014-08-19 20:06:48 UTC
I found the actual culprit. This was a fun bug!

https://git.gnome.org/browse/mutter/commit/?id=34979c3
Comment 13 Jasper St. Pierre (not reading bugmail) 2014-08-23 11:43:09 UTC
*** Bug 727653 has been marked as a duplicate of this bug. ***
Comment 14 Jasper St. Pierre (not reading bugmail) 2014-08-23 11:43:28 UTC
*** Bug 699488 has been marked as a duplicate of this bug. ***