[gdm-list] gdm hung after killing child



Hello,

Running a Debian GDM: 2.6.0.8.

When GDM starts, it launches a child process which in turn launches the X server, resulting in a structure like this:

root     18325     1  0 16:57 ?        00:00:00 gdm
root     18326 18325  0 16:57 ?        00:00:00 gdm
root     18586 18326  0 17:08 ?        00:00:03 /usr/X11R6/bin/X :0 -audit 0 -auth /var/lib/gdm/:0.Xauth

Now, we have something that due to historical reasons sends a SIGTERM to the parent of the X server (18326 above). That process dies, takes the X server with it (which is intended), BUT, then nothing starts up again.

The 18325 process just sits there indefinitely. No X server is running now. If I SIGHUP the process then it wakes up, but that's manual intervention.

# strace -f -p 18325
Process 18325 attached - interrupt to quit
poll(
[never returns in many minutes waited]

Obviously one could argue that we should just kill the parent of it, but I really don't think gdm should react like that anyway.

Some further debug info:
It logs this:
Sep 20 18:19:53 gdm[18325]: gdm_child_action: Aborting display :0

The strace does this just before the poll:
send(7, "<30>Sep 20 18:19:53 gdm[18325]: gdm_child_action: Aborting display :0", 69, 0) = 69
rt_sigaction(SIGPIPE, {SIG_IGN}, NULL, 8) = 0
time(NULL)                              = 1127204393
close(8)                                = 0
gettimeofday({1127204393, 22553}, {4294966696, 0}) = 0
waitpid(-1, 0xbfb601f8, WNOHANG)        = -1 ECHILD (No child processes)
poll( <unfinished ...>


Cheers,

 - Simon



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]