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 432587 - gnome-session ignores error messages from GDM when trying to switch users
gnome-session ignores error messages from GDM when trying to switch users
Status: RESOLVED OBSOLETE
Product: gnome-panel
Classification: Other
Component: general
2.16.x
Other All
: Normal major
: ---
Assigned To: Panel Maintainers
Panel Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-04-23 13:13 UTC by Sam Morris
Modified: 2020-11-06 20:25 UTC
See Also:
GNOME target: ---
GNOME version: 2.17/2.18



Description Sam Morris 2007-04-23 13:13:25 UTC
Please describe the problem:
So from time to time I notice that user switching does not work. In this case, I click 'switch user' in the logout dialog; my screen goes blank for a few seconds, and then I am returned to my original session.

I enabled debug logging and saw this:


Apr 23 13:53:34 xerces gdm[3340]: gdm_socket_handler: Accepting new connection fd 7
Apr 23 13:53:34 xerces gdm[3340]: Handling user message: 'VERSION'
Apr 23 13:53:34 xerces gdm[3340]: Handling user message: 'AUTH_LOCAL 2cfaec48fec3a0af9ea565ac583cdf2b'
Apr 23 13:53:34 xerces gdm[3340]: Handling user message: 'FLEXI_XSERVER'
Apr 23 13:53:34 xerces gdm[3340]: server: '/usr/bin/X'
Apr 23 13:53:34 xerces gdm[3340]: gdm_display_manage: Managing :-1
Apr 23 13:53:34 xerces gdm[3340]: loop check: last_start 0, last_loop 0, now: 1177332814, retry_count: 0
Apr 23 13:53:34 xerces gdm[3340]: Resetting counts for loop of death detection
Apr 23 13:53:34 xerces gdm[21282]: gdm_slave_start: Starting slave process for :-1
Apr 23 13:53:34 xerces gdm[21282]: gdm_slave_start: Loop Thingie
Apr 23 13:53:34 xerces gdm[21282]: Sending VT_NUM == -1 for slave 21282
Apr 23 13:53:34 xerces gdm[3340]: gdm_display_manage: Forked slave: 21282
Apr 23 13:53:34 xerces gdm[3340]: Handling message: 'VT_NUM 21282 -1'
Apr 23 13:53:34 xerces gdm[3340]: Got VT_NUM == -1
Apr 23 13:53:34 xerces gdm[21282]: Sending DISP_NUM == 20 for slave 21282
Apr 23 13:53:34 xerces gdm[3340]: Handling message: 'DISP_NUM 21282 20'
Apr 23 13:53:34 xerces gdm[3340]: Got DISP_NUM == 20
Apr 23 13:53:35 xerces gdm[21282]: gdm_server_start: :20
Apr 23 13:53:35 xerces gdm[21282]: gdm_auth_secure_display: Setting up access for :20
Apr 23 13:53:35 xerces gdm[21282]: gdm_auth_secure_display: Setting up access
Apr 23 13:53:35 xerces gdm[21282]: gdm_auth_secure_display: Setting up access for :20 - 1 entries
Apr 23 13:53:35 xerces gdm[21282]: Sending COOKIE == <secret> for slave 21282
Apr 23 13:53:35 xerces gdm[3340]: Handling message: 'COOKIE 21282 9...'
Apr 23 13:53:35 xerces gdm[3340]: Got COOKIE == <secret>
Apr 23 13:53:35 xerces gdm[21282]: Sending AUTHFILE == <secret> for slave 21282
Apr 23 13:53:35 xerces gdm[3340]: Handling message: 'AUTHFILE 21282 /var/lib/gdm/:20.Xauth'
Apr 23 13:53:35 xerces gdm[3340]: Got AUTHFILE == /var/lib/gdm/:20.Xauth
Apr 23 13:53:35 xerces gdm[21282]: gdm_server_spawn: Forked server on pid 21283
Apr 23 13:53:35 xerces gdm[21283]: gdm_server_spawn: '/usr/bin/X :20 -auth /var/lib/gdm/:20.Xauth -nolisten tcp vt8'
Apr 23 13:53:35 xerces gdm[21282]: do_server_wait: Before mainloop waiting for server
Apr 23 13:53:35 xerces gdm[21282]: gdm_server_start: After mainloop waiting for server
Apr 23 13:53:35 xerces gdm[21282]: gdm_server_start: Completed :20!
Apr 23 13:53:35 xerces gdm[21282]: Sending FLEXI_OK == 0 for slave 21282
Apr 23 13:53:35 xerces gdm[3340]: Handling message: 'FLEXI_OK 21282 0'
Apr 23 13:53:35 xerces gdm[3340]: Got FLEXI_OK
Apr 23 13:53:35 xerces gdm[21282]: Sending VT_NUM == 8 for slave 21282
Apr 23 13:53:35 xerces gdm[3340]: close_if_needed: Got G_IO_HUP on 7
Apr 23 13:53:35 xerces gdm[3340]: close_if_needed: Got error on 7
Apr 23 13:53:35 xerces gdm[3340]: Handling message: 'VT_NUM 21282 8'
Apr 23 13:53:35 xerces gdm[3340]: Got VT_NUM == 8
Apr 23 13:53:35 xerces gdm[21282]: Sending XPID == 21283 for slave 21282
Apr 23 13:53:35 xerces gdm[3340]: Handling message: 'XPID 21282 21283'
Apr 23 13:53:35 xerces gdm[3340]: Got XPID == 21283
Apr 23 13:53:35 xerces gdm[21282]: gdm_slave_run: Opening display :20
Apr 23 13:53:38 xerces gdm[3340]: Handling message: 'XPID 21282 0'
Apr 23 13:53:38 xerces gdm[3340]: Got XPID == 0
Apr 23 13:53:38 xerces gdm[21282]: gdm_slave_xioerror_handler: Fatal X error - Restarting :20
Apr 23 13:53:38 xerces gdm[21282]: term_quit: Final cleanup
Apr 23 13:53:38 xerces gdm[21282]: gdm_slave_quick_exit: Will kill everything from the display
Apr 23 13:53:38 xerces gdm[21282]: gdm_slave_quick_exit: Killed everything from the display
Apr 23 13:53:38 xerces gdm[3340]: mainloop_sig_callback: Got signal 17
Apr 23 13:53:38 xerces gdm[3340]: gdm_cleanup_children: child 21282 returned 64
Apr 23 13:53:38 xerces gdm[3340]: X failed!
Apr 23 13:53:38 xerces gdm[3340]: gdm_child_action: In remanage
Apr 23 13:53:38 xerces gdm[3340]: gdm_display_unmanage: Stopping :20 (slave pid: 0)
Apr 23 13:53:38 xerces gdm[3340]: gdm_display_dispose: Disposing :20
Apr 23 13:53:38 xerces gdm[3340]: gdm_display_unmanage: Display stopped

SIGCHLD eh? Let's check /var/log/gdm/:20.log...

Error: API mismatch: the NVIDIA kernel module has the version 1.0-9746, but
this X module has the version 1.0-9755.  Please make sure that the kernel
module and all NVIDIA driver components have the same version.
(EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module! Please ensure
(EE) NVIDIA(0):     that there is a supported NVIDIA GPU in this system, and
(EE) NVIDIA(0):     that the NVIDIA device files have been created properly. 
(EE) NVIDIA(0):     Please consult the NVIDIA README for details.
(EE) NVIDIA(0):  *** Aborting ***
(EE) Screen(s) found, but none have a usable configuration.

Fatal server error:
no screens found

Aha! This must be because I upgraded the NVIDIA drivers on my system yesterday, but didn't exit from my X session, stop GDM and reload the kernel module yet. Now, the problem itself is entirely of my own making; but I think GDM should be more helpful and display a dialog that explains that I couldn't switch users because the X server wouldn't start. The dialog could even display the log of the failed X server to me.

Steps to reproduce:
1. Log in with GDM
2. Break the X server configuration so that the server no longer starts
3. Try to switch user

Actual results:
I get dumped back at my original X11 session.

Expected results:
I should get a dialog with a message like this:

--[ Error starting X server ]--
Unable to start a new X server. /usr/bin/Xorg exited with status 123.

> Display failure details
-------------------------------

The > is a disclousre triangle that, when clicked, reveals the contents of /var/log/Xorg.20.log.

Does this happen every time?


Other information:
[forwarded from http://bugs.debian.org/420596]
Comment 1 Brian Cameron 2007-04-24 03:22:34 UTC
I'm not sure that this is really a GDM issue.  Note that gdmflexiserver (or the GDM socket if the program is calling the socket directly) should respond with "ERROR 3 X failed" in this case, so whatever program is telling GDM to start a flexi server could grab this and display a pop-up or message.
Comment 2 Loïc Minier 2007-05-01 14:18:48 UTC
@Sam, is this with FUSA?

If yes, please reassign to FUSA; thanks!
Comment 3 Sam Morris 2007-05-01 14:44:42 UTC
Nope just regular gdm.

IIRC gnome-panel (and/or gnome-screensaver) just run gdmflexiserver and ignore its exit status/output. 
Comment 4 William Jon McCann 2007-05-01 15:00:58 UTC
I don't think gdm should pop up an error message in any of those cases.  It should be up to the calling program to handle errors.
Comment 5 Sam Morris 2007-05-01 15:04:17 UTC
Indeed, I wasn't thinking clearly. Reassigning to gnome-session.
Comment 6 Vincent Untz 2007-05-08 15:32:58 UTC
gnome-session has nothing to do with this :-)

IMHO, it really should be gdmflexiserver that should report the error.
Comment 7 Brian Cameron 2007-05-09 02:03:50 UTC
In this situation, who is calling gdmflexiserver (or directly calling GDM via the sockets protocol)?  Is this FUSA, or gnome-panel or gnome-session?
Comment 8 Vincent Untz 2007-05-09 16:48:39 UTC
Oh, sorry, I hadn't read the whole bug. In this case, it's probably the panel's fault since it's calling GDM via the sockets protocol.
Comment 9 André Klapper 2020-11-06 20:25:56 UTC
bugzilla.gnome.org is being replaced by gitlab.gnome.org. We are closing all old bug reports in Bugzilla which have not seen updates for many years.

If you can still reproduce this issue in a currently supported version of GNOME (currently that would be 3.38), then please feel free to report it at https://gitlab.gnome.org/GNOME/gnome-panel/-/issues/

Thank you for reporting this issue and we are sorry it could not be fixed.