Black screen hang on XDMCP login.

Bug #228324 reported by Nick Russell
0
Affects Status Importance Assigned to Milestone
gdm
Expired
Medium
gdm (Ubuntu)
Triaged
Medium
Ubuntu Desktop Bugs

Bug Description

Binary package hint: gdm

In Hardy I'm getting a hang almost every time when I click XDMCP login from the gdmgreeter, there is about 5 lines of text on the screen, the last line is 'running local boot scripts etc rc.local'. The same thing sometimes happens more rarely on shutdown. Pressing the power button makes another line, i think its 'shutting down gdm' appear, but then it just hangs at that. Related, I think, is that I see the same 5 lines of text briefly when I logout, between gnome and gdmgreeter. On my other PC I just get black screen between gnome and greeter.

Revision history for this message
AM (macchi) wrote :

I do experience the same problem and hope there will be a solution within a reasonable time.

Smooth XDMCP logins are very useful for professional environments. Unfortunately such small but very visible problems undermine the confidence on Linux and on Ubuntu for professional environments.

Revision history for this message
Nick Russell (thatnick) wrote :

Do you also get the occasional hang on shutdown and text displayed on logout? Thanks, Nick.

Revision history for this message
Sebastien Bacher (seb128) wrote :

thank you for your bug report, could you note what lines are displayed exactly and attach your /var/log/messages and /var/log/syslog after getting the issue?

Changed in gdm:
assignee: nobody → desktop-bugs
importance: Undecided → Medium
status: New → Incomplete
Revision history for this message
Nick Russell (thatnick) wrote :

Whenever any of the 3 issues occur this text is displayed:

"*Starting anachronistic cron anacron
*Starting deferred execution scheduler ATD
*Enabling additional executable binary formats binfmt-support
*Checking battery state
*Running local boot scripts (/etc/rc.local)"

Just below that the cursor is flashing.

So just to reiterate this is always displayed with no hang on logout; it is frequently displayed with a hang when going from the login screen to XDMCP; and is rarely displayed with a hang on shutdown.

I've attached my logs.

I tried logging in and logging straight back off again at 10:44 May 14th (so this was when the text was displayed, but the PC didn't hang).

At about 10:48 I then logged off and clicked options and XDMCP. The text was displayed but there was no crash this time. So I clicked cancel and tried options XDMCP again, this time it did hang, as usual with the text and flashing cursor. I waited a while and eventually pressed power which made *Stopping Gnome display manager appear, and after a short delay the PC shutdown successfully. Then I rebooted to write this!

I haven't been able to reproduce the shutdown hang for awhile, as I said it happens very rarely.

Revision history for this message
Nick Russell (thatnick) wrote :
Revision history for this message
Sebastien Bacher (seb128) wrote :

there is nothing in the log about gdm, does enabling the debugging option make it list something?

Revision history for this message
Nick Russell (thatnick) wrote :

I tried installing the hardy-proposed update to GDM https://bugs.launchpad.net/ubuntu/+source/gdm/+bug/229866 but the problem remains. The only change is that with the XDMCP crash, the text is no longer displayed, it still hangs, but now at the usual light brown screen with the mouse pointer visible.

About the logs, sorry, didn't realise I had to enable debugging. I'm attaching excerpts from my logs with debugging enabled.

Syslog on logoutLogin is for the text thats appearing between gnome and greeter.
Syslog on logoutXDMCPhang is for the hang that happens with XDMCP from the greeter.

Revision history for this message
Nick Russell (thatnick) wrote :
Revision history for this message
Sebastien Bacher (seb128) wrote :

thank you for your work on that, unconfirming for now since it has details but I don't know the gdm code enough to determine what could cause the issue, it's likely that upstream would have useful comments though if somebody is wanting to forward the issue to bugzilla.gnome.org

Changed in gdm:
status: Incomplete → New
Revision history for this message
Nick Russell (thatnick) wrote :
Changed in gdm:
status: Unknown → New
Revision history for this message
Sebastien Bacher (seb128) wrote :

thank you, we will follow the upstream comments and changes

Changed in gdm:
status: New → Triaged
Revision history for this message
Nick Russell (thatnick) wrote :

After an upgrade to intrepid alpha 4 this still occurs. To recap...

When logging out OR clicking XDMCP in the gdmgreeter a blank screen appears with 5 lines of text and a flashing cursor, the text is as follows in Intrepid:

*Starting System Tools Backends
*Starting anac(h)ronistic cron anacron
*Starting deferred execution scheduler ATD
*Starting periodic command scheduler crond
*Enabling additional executable binary formats binfmt-support
*Checking battery state

On logout this disappears after about a second and I successfully arrive at the gdmgreeter.

When clicking XDMCP in the greeter on the other hand the system frequently just gets stuck with this text on the screen and I have to turn the computer off and then back on again.

Revision history for this message
Debbie Beliveau (debbie-beliveau) wrote :

On a netbook running hardy, I've encountered this issue when quickly triggering a restart in gdm's login window (to quickly trigger the reboot, I simply press Alt+T, R, then Alt+R when the login window appears). The greeter disappears and I am left in the console with the last boot message that was output (Running local boot scripts (/etc/rc.local) [OK]). The device is still very much alive as I can interact fully with it from a virtual terminal. The greeter process and X server process have been stopped but the main gdm process as well as the slave process are still around. The issue seems to be a race condition as I cannot reproduce it with gdm debugging or valgrind on (they seem to slow down gdm enough to avoid the bug).

I am not positive this is the same issue that occurs when XDMCP login is selected but the resulting behavior is the same and the bug comments do mention that this does happen occassionally on shutdown.

When gdm starts, it creates a slave process which in turn creates a gdmgreeter process and an X server process. When restart is selected from the login menu, the gdmgreeter process should exit with status 8 (status 8 = DISPLAY_REBOOT). When the gdmgreeter process exits, the slave process should stop the X server process and then also exit with status 8. When the slave process exits with status 8, the main gdm process should get a SIGCHLD signal, query the exit status, detect that the slave process exited with status 8, and then perform the reboot command (shutdown -r now). When I encounter the bug, it seems that the gdmgreeter process is exiting with status 8, the server process is stopped, but the slave process never exits. Because the slave process never exits, the main gdm process never gets a SIGCHLD signal and therefore never runs the reboot command. The slave process, strangely, is not exiting because it is stuck in a g_free call (deadlock?). With g_free removed, the bug does not seem to happen. The following is gdb info for the slave process that does not exit:

BACKTRACE:

#0 0xb7f25410 in __kernel_vsyscall ()
#1 0xb778a953 in __lll_lock_wait_private () from /lib/libc.so.6
#2 0xb771922b in _L_lock_15807 () from /lib/libc.so.6
#3 0xb77187b0 in free () from /lib/libc.so.6
#4 0xb783772c in g_free () from /usr/lib/libglib-2.0.so.0
#5 0x08069850 in gdm_server_wipe_cookies (disp=0x80ba100) at server.c:110
#6 0x0806ab9a in gdm_server_stop (disp=0x80ba100) at server.c:336
#7 0x0805c629 in gdm_slave_quick_exit (status=8) at slave.c:5747
#8 0x080689e4 in gdm_slave_start (display=0x80ba100) at slave.c:735
#9 0x0805b84f in gdm_display_manage (d=0x80ba100) at display.c:414
#10 0x08051c22 in gdm_start_first_unborn_local (delay=0) at gdm.c:268
#11 0x08052588 in main (argc=Cannot access memory at address 0xfffffe00

RELEVANT SOURCE CODE (daemon/server.c):

/* Wipe cookie files */
void
gdm_server_wipe_cookies (GdmDisplay *disp)
{
 if ( ! ve_string_empty (disp->authfile)) {
  VE_IGNORE_EINTR (g_unlink (disp->authfile));
 }
=> g_free (disp->authfile);
 disp->authfile = NULL;

VARIABLE VALUE:

gdb> p disp->authfile
$14 = (gchar *) 0x80bc6f8 "/var/lib/gdm/:0.Xauth"

Changed in gdm:
status: New → Invalid
Revision history for this message
Sebastien Bacher (seb128) wrote :

could somebody try if that's still happening in lucid?

Revision history for this message
littlepear (littlepear) wrote :

Yes. I've just installed Lucid. When I try to stop gdm, I get a few lines and below "checking battery state..." is a blinking cursor. I'm trying to install a Nvidia driver for my GE Force 9800 GT (new). The drive is brand new as well, a WD10EARS.

Changed in gdm:
importance: Unknown → Medium
status: Invalid → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.