Bugzilla – Bug 398364
Multiscreen Output + Logout + Single Screen + Login == madness
Last modified: 2011-04-04 03:12:54 UTC
I have a dual-screen setup on a Lenovo T60p. If do one of the following: 1. Logout, unplug the external monitor, Ctrl+Alt+Backspace until X-server is restarted, Login 2. Shutdown, unplug the extenral monitor, boot, Login then my Login session is "screwy"/corrupted/"wrong". In particular, gnome-session starts eating as much CPU as it can, followed by as much RAM as it can (eventually consuming several GB), and the session is never usable. Logging out and re-adding the external monitor permits a normal usable login. Alas, this means it's nigh impossible to use this as laptop on the road... :-/
And another way to reproduce is: With a dual-screen setup: 1. Launch gnome-display-properties. 2. Click the Mirror Screens checkbox. 3. Profit! Things go "bad" rather quickly -- no logout/login required. Furthermore, in this case it wasn't gnome-session going haywire, but gnome-panel. Perhaps it was a panel applet causing me pain? No idea. My panel applets include: Show/hide desktop, app launchers, Recycle Bin, Tomboy, Temperature control, Notification Area, CPU Frequency Scaler, System Monitor, Clock, Fast User Switch Applet, Volume Control, Window Selector, Workspace Switcher. Even "better", it's saved to your profile, so killing the X server and logging back in *still* leaves you with a ~unusable setup. I was eventually able to fix things by logging in from a remote machine, `killall gnome-panel` from remote, opening a local terminal, and: $ xterm --output VGA_1 --left-of PANEL $ gnome-session-save Ctrl+Alt+Backspace ** 2 Things were saner after that.
On rereading this, it should obviously be xrandr, not xterm, in the above command. Also, this still happens. Yay no easy way to disable screen mirroring!
And if `gnome-session-save` + Ctrl+Alt+Backspace**2 doesn't save your session, run gnome-display-properties, click & clear the "Mirror Screens" checkbox (makeing sure that it's clear), and hit Apply. This seems to save things properly.
Narrowed this down some more. The problem appears to be from gnome-panel. More specifically, this usually happens on login to a single-screen system (though gnome-display-properties also provokes this). The "workaround" for this is to *remove* the ~/.gconf/apps/panel/toplevels directory -- after that point, I can login to a usable system.
Created attachment 249278 [details] panel.tgz This is the contents of my ~/.gconf/apps/panel directory, which is apparently responsible for all my grief with single-screen output.
When you perform the steps from comment #1, what exactly goes wrong with the panel?
Additional information (but not an answer to Federico's question): If I edit ~/.gconf/apps/panel/**/%gconf.xml and *remove* the //entry[@name="monitor"] and //entry[@name="screen"] entries, I don't have any problems with login anymore. Apparently I had entries such as: <entry name="monitor" mtime="1219710607" schema="/schemas/apps/panel/toplevels/monitor" type="int" value="1"> </entry> which specifies that the panel/etc. should be on monitor 1, but when there isn't an external monitor there is no monitor one, thus (apparently) causing grief. One oddity though is that the DPI or something differs between multi-screen & single-screen use: if I have the e.g. Application font set for 'Sans 7', it's quite readable under multi-monitor, but the font display is considerably smaller under single-monitor (e.g. I have to bump it up to 'Sans 11' to get a comparable font size).
In comment #1, I forgot a step: Click Apply. Once apply is clicked, things go south. Specifically: 1. I don't see the panel anymore. 2. Where the panel _was_ (across the top of the screen), I now see flickering in the top-left corner. Constant redrawing, from what I can guess. 3. I can't select any windows. I have focus-follows-mouse enabled, and hovering over a window no longer changes the title bar color. Clicking inside a window has no effect (e.g. if the window is below another window, it is NOT raised to be top in the Z order). 4. The output of top(1) shows gnome-panel with 65+% CPU, and an increasing amount of %MEM (38.8, 39.7, etc...). Incredibly, the mouse still moves, but the system is ~completely unusable from within Gnome (though using a terminal still works, e.g. Ctrl+Alt+F1...). One piece of information that might be needed to reproduce is my dual-screen setup: This is a laptop, so my "primary" screen is the laptop screen. The secondary screen is placed to the *left* of the primary screen. My panel is on the primary screen. Thus: +-----------+-------------+ | | panel-1 | | +-------------+ | | | | Secondary | Primary | | | | +-----------+-------------+ Based on previous comments (comment #4 and comment #7), my suspicion is that when the Mirror Screens checkbox + Apply button is clicked, the screens/monitors are renumbered, and the Primary screen goes from being Monitor 1 to Monitor 0. gnome-panel, meanwhile, wants to stick a panel into monitor 1, which no longer exists, and consequently craps itself in a busy loop of some form.
Could you please try this again with openSUSE 11.1? The multihead stack is much improved there, and your problems seem to touch on many parts of the stack...
How much did the multihead stack change between the 11.1 betas and 11.1 final? The above comments from 2008-12-01 were from 11.1 Beta 4, I believe, and the problem seemed to be confined to gnome-panel (to the extent that I could "fix" the problem by renaming .gconf/apps/panel, or by manually modifying the .gconf XML as done in comment #7). (Though when I go back and retest this, I *really* should mention which version I'm retesting on...)
There is a slew of pending updates for 11.1 for the multihead stack. In the meantime, if you could test the code from SLED-11, that's the exact same code that will get updated for 11.1. Sorry about the un-synchronization of both versions :(
Running openSUSE 11.1, with all updates applied as of today (via `sudo zypper up'), and gnome-display-properties is now working as expected. Yay! No hangs, no behavior that renders the desktop "unusable," It Just Works. Thank you.
I spoke too soon. gnome-display-properties works, but removing the external monitor and rebooting doesn't -- once logged in gnome-panel tries to use ~80% CPU and a continually growing amount of memory, as mentioned in the original description. The fix from comment #5 -- logging out, removing the ~/.gconf/apps/panel directory, and logging back in -- continues to work.
The version with which you had the bug is now obsolete. I'll close this as NORESPONSE. If you can still reproduce it in current 11.4, please reopen the bug and move it to the appropriate version. Thanks!