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 663209 - Mutter no longer works (properly) as window manager in fallback mode
Mutter no longer works (properly) as window manager in fallback mode
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: general
3.2.x
Other Linux
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2011-11-02 01:38 UTC by Bojan Smojver
Modified: 2012-05-15 01:45 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Bojan Smojver 2011-11-02 01:38:01 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
Comment 1 Jasper St. Pierre (not reading bugmail) 2011-11-02 09:30:43 UTC
What does mutter --version and Xorg -version say? I'm running mutter in fallback mode right now...
Comment 2 Bojan Smojver 2011-11-02 09:37:35 UTC
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)
Comment 3 Bojan Smojver 2011-11-03 00:09:30 UTC
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.
Comment 4 Bojan Smojver 2011-11-03 00:13:15 UTC
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.
Comment 5 Jasper St. Pierre (not reading bugmail) 2011-11-03 19:02:32 UTC
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.
Comment 6 Ray Strode [halfline] 2011-11-03 19:18:05 UTC
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)
Comment 7 Bojan Smojver 2011-11-04 00:44:34 UTC
(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.
Comment 8 Bojan Smojver 2011-11-10 03:38:29 UTC
(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.
Comment 9 Bojan Smojver 2012-05-15 01:45:07 UTC
This has been working for a long time now. Thanks for the fix.