Re: [gdm-list] greeter restart after using wrong username



Hi,

I found the problem, and the cause was not GDM.

gdmaskpass did segfault only when the username was wrong. I discoverd
that a custom pam module was causing the segfault.

I learned that if GDM is crashing, it may be caused by a wrong pam stack
module.

Thanks for the help and hope that this information can be useful,

Francis Giraldeau

Brian Cameron a écrit :
> Francis:
>
> Sorry for the slow response, I've been swamped lately.
>
>>>> When using pam_ldap or pam_winbind by XDMCP, and entering a wrong
>>>> credential, GDM doesn't display the standard message "wrong
>>>> username or
>>>> passord". In place of that, the greeter reset completely and
>>>> reloads, as
>>>> if CTRL-ALT-Backspace was pressed.
>>>>
>>>> How can I do the debug of that?
>>> Normally when the greeter restarts, it is because there was a crash.
>>> Is there a core file in your root (/) directory, or in /var/lib/gdm
>>> or /var/lib/log/gdm?  Sometimes gdm will leave core files here that
>>> we can check for a stacktrace.
> >
>> I did have core dump, but I don't know if they are related to the error.
>> I tried to get core dump by lauchning gdm-binary on the current shell,
>> wich I did ulimits -c 10240, but process doesn't create the core dump.
>
> I think you said that the core dump is generated by gdmgreeter, which
> is a process launched by the slave daemon, which is launched by the
> main daemon.  So you wouldn't see the core by watching gdm-binary
> directly.
>
> Unfortunately since gdmgreeter is launched in this way, it isn't
> really easy to launch it with a debugger, unless you can do the
> following.
>
> Is there any way you can start a GUI session without using gdmgreeter.
> You could try using gdmlogin instead of gdmgreeter by changing the
> daemon/Greeter key in the configuration file to /usr/lib/gdmlogin.
> Does this work any better?  I'm guessing not, since you say you get
> a core dump trying to use it as well.
>
> If not, can you use something like a startx script to run a
> gnome-session without using a display manager by running:
>
> startx gnome-session
>
> or
>
> startx dbus-launch gnome-session
>
> Or perhaps try to use a different display manager (KDM, XDM) to get
> into your session while you look into this GDM bug?
>
> Once you get a a GUI session started you can try to do the following
> from a terminal:
>
> Set the environment variable: DOING_GDM_DEVELOPMENT=1
> Then try running gdmgreeter.  Does it still core dump?  If so, try
> running with a debugger and see if we can track this down.
>
>> I got the problem with gdm 2.8 and 2.16. I confirm that the
>> configuration is not the issue, I tested a configuration that is known
>> to work. I also used standard theme, and the problem is still there.
>
> Does trying GDM 2.18.1 work better?
>
>> # strings /usr/sbin/gdm-binary | grep 2.1
>> GDM 2.16.0
>>
>> Anyway, here is the backtrace I got from the core dump of gdmgreeter.
>> Realy strange.
>
> Yes, this is an odd core dump.  The fact that it is core dumping in
> cairo for gdmgreeter and glib for gdmlogin indicates that the problem
> may be with your GNOME base libs having some issue - perhaps you somehow
> have incompatible versions of the libraries installed on your system?
>
> You might try upgrading your glib, cairo and GTK libraries and
> see if this helps.  Typically when you find a coredump in these
> libraries it isn't a GDM specific issue, but a problem with the core
> libraries.
>
> It is also odd that I don't see any GDM functions in the stack.  Did
> you rebuild GDM with debug turned on?
>
>> #0  0xbfffe410 in __kernel_vsyscall ()
>> (gdb) bt
>> #0  0xbfffe410 in __kernel_vsyscall ()
>> #1  0xb7057fc0 in raise () from /lib/i686/libc.so.6
>> #2  0xb7059851 in abort () from /lib/i686/libc.so.6
>> #3  0xb705153b in __assert_fail () from /lib/i686/libc.so.6
>> #4  0xb75e00a2 in _cairo_image_surface_clone () from
>> /usr/lib/libcairo.so.2
>> #5  0xb7607579 in cairo_xlib_surface_get_display () from
>> /usr/lib/libcairo.so.2
>> #6  0xb760797b in cairo_xlib_surface_get_display () from
>> /usr/lib/libcairo.so.2
>> #7  0xb75e8142 in cairo_surface_set_fallback_resolution () from
>> /usr/lib/libcairo.so.2
>> #8  0xb75ea048 in cairo_surface_create_similar () from
>> /usr/lib/libcairo.so.2
>> #9  0xb75ea3ae in cairo_surface_create_similar () from
>> /usr/lib/libcairo.so.2
>> #10 0xb75e85f4 in cairo_surface_reference () from /usr/lib/libcairo.so.2
>> #11 0xb75e87c3 in cairo_surface_reference () from /usr/lib/libcairo.so.2
>> #12 0xb75eb6d6 in cairo_surface_create_similar () from
>> /usr/lib/libcairo.so.2
>> #13 0xb75eb867 in cairo_surface_create_similar () from
>> /usr/lib/libcairo.so.2
>> #14 0xb75e901d in cairo_surface_reference () from /usr/lib/libcairo.so.2
>> #15 0xb75dcb14 in cairo_font_options_create () from
>> /usr/lib/libcairo.so.2
>> #16 0xb75d7f46 in cairo_fill_preserve () from /usr/lib/libcairo.so.2
>> #17 0xb75d7f70 in cairo_fill () from /usr/lib/libcairo.so.2
>> #18 0xb7b0b144 in gdk_window_set_user_data () from
>> /usr/lib/libgdk-x11-2.0.so.0
>> #19 0xb7b0c4ad in gdk_window_begin_paint_region () from
>> /usr/lib/libgdk-x11-2.0.so.0
>> #20 0xb7c9d74c in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
>> #21 0xb7b0c885 in gdk_window_is_viewable () from
>> /usr/lib/libgdk-x11-2.0.so.0
>> #22 0xb7b0cabc in gdk_window_process_all_updates () from
>> /usr/lib/libgdk-x11-2.0.so.0
>> #23 0xb7c0ba74 in gtk_container_check_resize () from
>> /usr/lib/libgtk-x11-2.0.so.0
>> #24 0xb74373e0 in g_source_is_destroyed () from
>> /usr/lib/libglib-2.0.so.0
>> #25 0xb74391b5 in g_main_context_dispatch () from
>> /usr/lib/libglib-2.0.so.0
>> #26 0xb743c1d2 in g_main_context_check () from /usr/lib/libglib-2.0.so.0
>> #27 0xb743c544 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
>> #28 0xb7c9d9af in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
>> #29 0x08051365 in ?? ()
>> #30 0xb704575c in __libc_start_main () from /lib/i686/libc.so.6
>> #31 0x080503b1 in ?? ()
>>
>> I got also a coredump from gdmlogin.
>>
>> (gdb) bt
>> #0  0xb75260e3 in strlen () from /lib/i686/libc.so.6
>> #1  0xb7748141 in g_markup_escape_text () from /usr/lib/libglib-2.0.so.0
>> #2  0x080550bf in ?? ()
>> #3  0xb74d075c in __libc_start_main () from /lib/i686/libc.so.6
>> #4  0x0804f341 in ?? ()
>>
>> Wired, isn't?
>>
>> Francis
>>
>


-- 
Francis Giraldeau, Ing jr.
Analyste Infrastructure
Directeur Qualité
Téléphone : (819) 780-8955 poste 1111
Sans frais : 1-800-996-8955
Télécopieur : (819) 780-8871

Revolution Linux Inc.
2100 King ouest - bureau 260
Sherbrooke (Québec)
J1J 2E8 CANADA

http://www.revolutionlinux.com

Toutes les opinions et les prises de position exprimees dans ce courriel
sont celles de son auteur et ne representent pas necessairement celles
de Revolution Linux

Any views and opinions expressed in this email are solely those of the
author and do not necessarily represent those of Revolution Linux






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