[compiz] Compiz lockup with XRandr and External Monitors

Jud Craft craftjml at gmail.com
Sun Dec 21 09:27:06 PST 2008


Hello there -- I have an unusual bug that I recently discovered.  I've
put several hours into making sure I can reproduce it everytime, but
the process seems so strange (and specific) that I feel I would be
laughed off of a bugzilla if I tried to post it.  At any rate, I
thought I'd give a description of my situation.


First, disclaimers.
The software:  Fedora 10, fresh install, GNOME environment, default
settings.  (F10 includes Compiz 0.7.6).
The relevant hardware:  toshiba satellite laptop (a205-s4777),
intel-965 GMA graphics, 22" external monitor.


Second, a description of the crash:
It occurs when trying to launch Compiz through
System->Preferences->Look & Feel->Desktop Effects.  Your screen does
that kind of flicker thing that enabling Compiz always does, except
instead of the desktop coming back with pretty shadows, the GNOME
panel, nautilus, and all programs vanish.  The busy cursor on the
mouse freezes.

You still have mouse control, and it doesn't seem like a system freeze
-- if you were playing music, it still plays, so the PC has not
frozen.  But keyboard control is completely unresponsive -- you cannot
switch terminals or even restart X via Ctrl-Alt-Backspace.  In essence
your computer is okay, but paralyzed.


Third:  How to cause the crash.
There are a series of basic steps required.  First of all, you must
have an external monitor plugged in, and must start out NOT running
Compiz.  I can do these steps straight from a fresh bootup+login and
cause the crash.

1.  Perform an Xrandr command that resizes the external monitor. [1]
2.  Launch the Desktop Effects launcher
(System->Prefs->Look&F.->Desktop Effects)
3.  Click "Enable Desktop Effects."  Once they are enabled, click "Use
Previous Settings" to revert the change.
4.  Close the Desktop Effects launcher. [2]
5.  Launch the Desktop Effects launcher again, and click "Enable
Desktop Effects" one more time.
6.  Compiz has locked up X as described in the crash section above.


Four:  Analysis and notes.
First, you must have an external monitor; I tried repeatedly to pull
this off with just my plain laptop panel and I could not make Compiz
freeze X.  It only works with an external monitor.

[1].  The Xrandr command must resize specifically the external
monitor.  Compiz would never freeze until after I executed a command
which resized the external monitor.
[1].a.  The command must _increase_ the size of the Xrandr
framebuffer, as far as I can tell.  (Resizing the external monitor to
a smaller resolution never led to a crash later; resizing it to a
higher resolution (1440x900, 1680x1050, etc). always did).

[2].  You MUST close and then reopen the Desktop Effects launcher.  If
you merely open it once, you can Enable and Disable effects all you
like, without freezing.  (As far as I can tell).  My system only
freezes once I try to enable effects, cancel and close the Desktop
Effects window, and then open it to try again.

The Xrandr command MUST be run before the attempts to launch Compiz
twice in a row.  The lockup never occurs until after I've run the
external-monitor-changing Xrandr command.


Fifth, final thoughts.
Essentially, immediately after logging in, running an Xrandr command
and then trying to launch Compiz twice, I can consistently lock up and
freeze my computer every time, within a minute of starting up.

These are the only actions that are required to lock up my machine.
(I initially thought other programs were involved until I realized
that the mere act of trying to launch Compiz, then cancel, then do it
again was enough on its own to lock up X).

I'm not sure what the root of the bug (Xrandr, my monitor, my card, or
Compiz itself) is, but it is my belief that Compiz should ideally
never completely lock up your PC, so that part of it at least is a
Compiz bug.  I tried searching through the Compiz bugzilla for terms
"crash", "lock", and "xrandr", but found nothing resembling my
situation.


More information about the compiz mailing list