Re: [gdm-list] Gdm awaiting for network




Riccardo:

The problem might be something relating to gethostname().  If you write
a standalone program which makes similar calls as in the GDM code,
does it also hang?

Sorry, I'm just a Linux user, how could I write such a standalone
program?

You can just write a c program to mimic the code in GDM, and refer
to "man gethostbyname".

I obviously don't see this problem, so someone on a machine that
shows the issue will need to look into this.

Another approach would be to add more debug messages to GDM and
rebuild it, to narrow down where the problem is.

You may need to recompile GDM with debug (-g) to get it to tell you
the function names.  The info you provided, as you notice, isn't so
useful.

Sorry again, but I have very limited space left on the small ssd of the
eeePC, and compiling gdm should require to install a lot of *-dev
packages...

I'm sorry too.

However, being "/usr/sbin/gdm --config=/etc/gdm/gdm-cdd.conf" the
command I can read when I do:

$ ps ax | grep gdm
12108 ?        Ss     0:00 /usr/sbin/gdm --config=/etc/gdm/gdm-cdd.conf
12109 ?        S      0:00 /usr/sbin/gdm --config=/etc/gdm/gdm-cdd.conf


I've tried what follows:

# strace /usr/sbin/gdm -nodaemon --config=/etc/gdm/gdm-cdd.conf >
gdm-strace.txt 2>&1

[...]

writev(2, [{"gdm[5129]: DEBUG: Attempting to "..., 69}], 1gdm[5129]:
DEBUG: Attempting to parse key string: debug/Enable=false
) = 69

[here is the delay]

send(3, "<28>Aug 26 12:10:19 gdm[5129]: D"..., 89, MSG_NOSIGNAL) = 89
time(NULL)                              = 1219745419
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2652, ...}) = 0
writev(2, [{"gdm[5129]: DEBUG: Handling messa"..., 61}], 1gdm[5129]:
DEBUG: Handling message: 'WRITE_X_SERVERS 5130 0'
) = 61

This looks like the code in gdm/daemon/slave.c in the function
gdm_slave_child_handler.  It calls the function gdm_auth_user_add
which calls get_local_auths.  Then gdm_slave_child_handler calls
GDM_SOP_WRITE_X_SERVERS.

From your previous debug output, we know the problem happens before
the "get_local_auths: Setting up socket access" message in
get_local_auths.

So this doesn't really provide us with much additional information.

If perhaps the output I've pasted here is not enough, I attach the
bunzipped file (just 13.3kB) with all the output, hoping it should be
useful...

Sorry, this doesn't really tell us more than we already knew from
the GDM debug output to syslog.

Perhaps other Linux users might be able to suggest some other
techniques to debug what the process is doing.  It would be handy
if we could get some information about what the process is doing
when it is hanging.  I was hoping pstack would provide this information,
but it didn't seem to work well.

Brian



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