Skip site navigation (1)Skip section navigation (2)
Date:      10 Jul 2002 19:08:53 -0700
From:      Joe Kelsey <joe@zircon.seattle.wa.us>
To:        ezislis <kesor@mail.ru>
Cc:        gnome@freebsd.org, jirka@5z.com
Subject:   Re: GDM 2.4.0.x & FreeBSD
Message-ID:  <1026353333.8748.40.camel@zircon.zircon.seattle.wa.us>
In-Reply-To: <20020711010419.H37195-100000@finone.in.kesor.net>
References:  <20020711010419.H37195-100000@finone.in.kesor.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 2002-07-10 at 15:19, ezislis wrote:
> Greets,
> 
> I saw marcus ask for some more debug information about the gdm problems
> so here it goes:
> 
> The problem -
> When starting 'gdm --nodaemon' from /etc/ttys instead of from the console
> or from /usr/X11R6/etc/rc.d/gdm.sh script, GDM gets stuck just after one
> writes his username in the prompt.
> 
> Porposed fixes - either run gdm as root from console, or via rc.d script.
> 
> Debugging -
> I have compiled GDM 2.4.0.1 (changed the makefile) without stripping
> binaries. I have put 'gdm --nodaemon' in /etc/ttys and done 'kill -1 1'
> I attached gdb to the slave gdm-binary by using 'gdb gdm-binary 35366'
> Entered my username in the prompt, and hit on enter.
> GDM got stuck.
> I used '^C' in gdb to break, and wrote 'bt'
> 
> --- quote ---
> (gdb) bt
> #0  0x288c61d7 in __srget () from /usr/lib/libc_r.so.4
> #1  0x8058dee in gdm_slave_greeter_ctl (cmd=35 '#', str=0x80679a3
> "") at /usr/include/stdio.h:418
> #2  0x80555a6 in run_pictures () at slave.c:1080
> #3  0x8056270 in gdm_slave_greeter () at slave.c:1477
> #4  0x8054a2f in gdm_slave_run (display=0x80b2000) at slave.c:603
> #5  0x8054236 in gdm_slave_start (display=0x80b2000) at
> slave.c:271
> #6  0x8053b0b in gdm_display_manage (d=0x80b2000) at display.c:217
> #7  0x8050625 in gdm_start_first_unborn_local (delay=0) at
> gdm.c:764
> #8  0x805184f in main (argc=3, argv=0xbfbffde0) at gdm.c:1497
> #9  0x804ef31 in _start ()
> --- end quote ---

This is absolutely normal.  GDM forks the gdmlogin process and then
enters an endless loop in run_pictures.  It regularly checks for a
return from gdmlogin, hoping that it can use the username to display the
user's picture.  Otherwise, it just keeps in an endless loop in
run_pictures until notified by gdmlogin.

The problem appears to be in the communication between gdmlogin and the
master gdm slave or in the transfer of control between gdmlogin and
gdmaskpass, but I am not sure about what is really supposed to happen. 
If you put gdb on the gdmlogin process at the point where it hangs, it
is stuck permanently in _thread_sys_poll, essentially signifying
nothing.

There are no other gdm processes available for debugging.

Joe mentioned that my app_find_device problemmay somehow be related to
the Matrox DRI code in the X server.  I don't know whether or not that
would stop gdm.

I have no idea how to tell if gdmlogin is actually running multiple
threads or not or what another thread id within gdmlogin might yeild
better results than the one you get by attaching gdb.

In any case, your conversation with viscious below is less than useful
because neither he nor you really understood what is happening to gdm.

I don't understand it either, but I can point to more datapoints.

Another data point:

When I build and install gdm2 under X while gdm1 is running, then
logout, it comes up with the new greeter and allows me to login. 
However, if I actually logout, go to a console vty and then kill the
master gdm process, when the new greeter appears I cannot login.

I have no idea what this means either...

/Joe

> from what i have discussed with vicious on irc, he said :
> --- quote ---
> <_vicious_> it seems to be getting stuck on run_pictures
> <_vicious_> is the face browser enabled?
> <Kesor> I have the factory_gdm.conf
> <_vicious_> ok, then it shouldn't be enable
> <_vicious_> I think then that the greeters get confused
> <_vicious_> basically run pictures is part of the dialogue where the
> daemon is asking the greeter if it needs any pictures
> <Kesor> but the face thingy is disabled, so it shouldnt get there...
> <_vicious_> the greeter should just tell the daemon to go piss off and to
> continue without pictures
> <_vicious_> ahhh
> <_vicious_> wait a minute
> <_vicious_> I just remembered the warnings that showed up on screen
> <_vicious_> it would then seem like the communication pipe between daemon
> and greeter is just not working
> <Kesor> ohh, the glib warnings..
> --- end quote ---
> 
> The warnings mentioned, are glib warnings that appear when gdm is run as
> root from console, they are :
> 
> (process:98958): GLib-WARNING **: Need to have NULL encoding to set the
> buffering state of the channel.
> 
> 
> and usually appear several times.
> 
> 
> 
> 
> Thats it for problem #1, the gdm standard greeting.
> 
> There is also problem #2, which is triyng to run the graphical greeter
> (the one with the themes and background and the other eye candy)
> 
> When the gdm.conf file is specified to make gdm run in the more graphical
> mode, then right after gdm is started - it shows the X root screen only,
> and hangs there, without any prompts or background changes..
> It appears that this happens both when gdm is run from /etc/ttys, and when
> it is run from the CLI or from a rc.d script.
> 
> again, heres what vicious said :
> 
> --- quote ---
> <Kesor> ok, how about the graphical gdm?
> <_vicious_> it's the same thing I bet
> <_vicious_> only the graphical login likely gets stuck earlier
> <_vicious_> before it can display anything
> --- end quote ---
> 
> 
> 
> for those of you who dont know vicious, he is the developer of gdm.
> 
> 
> Hope this report will help bring gdm to freebsd in a working condition -
> I could not fix this myself, so good luck to those who can.
> 
> -- Kesor
> 
> 
> 
> -- 
>         ________  ______   _    _  _  __  _  _     __
> ||||_|||[]|||| -|| -\||||||*]||| \|*]| -|| ||*]|L | -|
> |||| |||||||||_-|/-_||||_||| |||_/|| | -||_||| |_|| -|
> Silent gratitude isn't much use to anyone.
> 		--G. B. Stern
> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-gnome" in the body of the message
> 



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-gnome" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1026353333.8748.40.camel>