GNOME Bugzilla – Bug 663209
Mutter no longer works (properly) as window manager in fallback mode
Last modified: 2012-05-15 01:45:07 UTC
Description of problem: If one replaces metacity with mutter in fallback mode, on user switch and switch back, or on suspend/resume, mutter crashes with: ------------------------ Window manager warning: Log level 16: The program 'mutter' received an X Window System error. This probably reflects a bug in the program. The error was 'BadWindow (invalid Window parameter)'. (Details: serial 9782 error_code 3 request_code 151 minor_code 1) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.) ------------------------ Version-Release number of selected component (if applicable): mutter-3.2.1-2.fc16.x86_64 How reproducible: Always. Steps to Reproduce: 1. Run mutter in fallback mode. 2. Suspend/resume or switch users back and forth. 3. See mutter crash. Actual results: Mutter crashes. Expected results: This worked in F15. Additional info: Not sure whether this is some kind of "feature" to discourage folks from running mutter in fallback mode. If it is, not everyone is all that happy with gnome-shell and yet we do like a simple, but 3D accelerated window manager. Copied from: https://bugzilla.redhat.com/show_bug.cgi?id=750476 Hardware: http://www.smolts.org/client/show/pub_ebd16c9b-ba21-4d39-964a-cfd361713146
What does mutter --version and Xorg -version say? I'm running mutter in fallback mode right now...
mutter 3.2.1 Copyright (C) 2001-2011 Havoc Pennington, Red Hat, Inc., and others This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE X.Org X Server 1.11.1 Release Date: 2011-09-24 X Protocol Version 11, Revision 0 Build Operating System: x86-11 2.6.32-131.2.1.el6.x86_64 Current Operating System: Linux shrek.rexursive.com 3.1.0-5.fc16.x86_64 #1 SMP Thu Oct 27 03:46:50 UTC 2011 x86_64 Kernel command line: ro root=/dev/mapper/vg00-lv00 rd_LVM_LV=vg00/lv00 rd_LVM_LV=vg00/lv01 rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_AU.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us Build Date: 26 September 2011 06:31:55PM Build ID: xorg-x11-server 1.11.1-1.fc16 Current version of pixman: 0.22.2 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. This is Fedora 16. The problem is not that mutter won't run in fallback mode - it does. It crashes on: - resume after suspend - switch user/switch back (both users in fallback with mutter)
Just for fun, I installed mutter-3.0.2.1-1.fc15.x86_64 and it doesn't crash on suspend/resume. I cannot do user switch properly, so that part is untested. Anyway, it seem indicative to me.
And just to make sure I didn't dream it, I installed mutter-3.2.1-2.fc16.x86_64 back on, which promptly crashed on resume.
OK, halfline gave me an idea of what's going on. No, this wasn't intentional. When you hit "Change User", we open a full-screen lock window (which is an OR window) and tell gdm to open a new X server. Because using GL means that DRI has an exclusive lock, we're blocking somewhere either or in the MapNotify handler. When you enter your password in gdm, we unmaps the lock window and switch to the tty with your X session. mutter is still in the MapNotify handler because of the DRI lock, and crashes with a BadWindow when calling XGetWindowAttributes. I'm not sure why it works with 3.0, though. mutter basically needs to be able to handle OR windows going away at any time.
If it's crashing on resume this seems unrelated to the screensaver window going away (since the screensaver window will still be there following a resume)
(In reply to comment #5) > I'm not sure why it works with 3.0, though. Just one note here, that may be of help. When I installed 3.0, I was not able to switch user, as I said before. What would happen was, gdm window would appear, but it would "hang" - it didn't even finish painting the user choices and such. I could still Ctrl + Alt + Fx to my X session where I was logged in. Not sure if this helps you.
(In reply to comment #7) > (In reply to comment #5) > > > I'm not sure why it works with 3.0, though. > > Just one note here, that may be of help. When I installed 3.0, I was not able > to switch user, as I said before. What would happen was, gdm window would > appear, but it would "hang" - it didn't even finish painting the user choices > and such. I could still Ctrl + Alt + Fx to my X session where I was logged in. Given that this gdm problem also happens with mutter 3.2.x (https://bugzilla.redhat.com/show_bug.cgi?id=751641), maybe these two problems are somehow related.
This has been working for a long time now. Thanks for the fix.