Re: [gdm-list] GDM D-Bus on Solaris




Jon:

Looking a bit more closely at the problem, I found that the worker was
crashing on a g_debug line because username is NULL, and Solaris tends
to crash in printf functions if you pass in NULL for an argument.  I
think the attached patch should be applied to the branch to avoid
crashing on the g_debug line.

After applying this patch, I can see it getting farther along based on
the /var/adm/messages information, but it still seems to fail with the
same error (showing "Prompt:" and not letting you actually log in).

Sep  4 18:40:43 brianca gdm-session-worker[1871]: [ID 702911 daemon.warning]
     DEBUG: Verifying user: (null) host:  service: gdm tty: /dev/console
Sep  4 18:40:43 brianca gdm-session-worker[1871]: [ID 702911 daemon.warning]
     DEBUG: initializing PAM
Sep  4 18:40:43 brianca gdm-session-worker[1871]: [ID 702911 daemon.warning]
     DEBUG: authenticating user
Sep  4 18:40:43 brianca gdm-session-worker[1871]: [ID 702911 daemon.warning]
     DEBUG: 1 new messages received from PAM
Sep  4 18:40:43 brianca gdm-session-worker[1871]: [ID 702911 daemon.warning]
     DEBUG: received pam message of type 2 with payload 'Username:'
Sep  4 18:40:43 brianca gdm-session-worker[1871]: [ID 702911 daemon.warning]
     WARNING: Unable to send InfoQuery: Connection was disconnected before a
     reply was received
Sep  4 18:40:43 brianca gdm-session-worker[1871]: [ID 702911 daemon.warning]
     DEBUG: PAM conversation returning 6
Sep  4 18:40:43 brianca gdm-session-worker[1871]: [ID 702911 daemon.warning]
     DEBUG: authentication returned 6: Conversation failure
Sep  4 18:40:43 brianca gdm-session-worker[1871]: [ID 702911 daemon.warning]
     DEBUG: uninitializing PAM
Sep  4 18:40:43 brianca gdm-session-worker[1871]: [ID 702911 daemon.warning]
     DEBUG: Unable to verify user
Sep  4 18:40:43 brianca gdm-session-worker[1871]: [ID 702911 daemon.warning]
     DEBUG: Conversation failure
Sep  4 18:40:43 brianca gdm-session-worker[1871]: [ID 702911 daemon.warning]
     DEBUG: Verification failed: Conversation failure

Not sure why the D-Bus conversation would fail at this point.  It seems that
we are getting the "Username:" request, but failing when GDM tries to respond
to this.  Any tips to further debug?

One other thing I noticed that is probably a bug on Solaris is that
/usr/sbin/dbus-daemon-launch-helper is not set to the right permissions
and did not have the setuid bit set.  So now I fixed it on my machine to be
chmod 4750 owner root:root.  Not sure if this affects how GDM would work
or not.

Brian


On 8/31/07, Brian Cameron <Brian Cameron sun com> wrote:
However, the greeter doesn't seem particularly functional for starting my
session.  A dialog comes up and asks "Prompt".  If I type something and
hit the OK button, the dialog disappears and things just hang.  If I hit
the Cancel button it also does the same thing.

If it says "Prompt" that means that it isn't being commanded by the
GdmSession to ask a particular question.  And indicates a problem...

Ok, thanks.

Do I need to install libpam-ck-connector or something? I notice the following
debug messages in my syslog.  It seems that the greeter is sending my
username, but the answer is empty for some reason.  I think the DBUS
destroyed message might have been caused by my killing the Xserver with
Ctrl-Alt-Backspace, but am not sure.

No you don't need libpam-ck-connector.  Seems like one of the
processes is dying.  Can you try attaching a debugger to the various
gdm processes to find out what is going on?

Could you explain what processes should be running when the new GDM is
working properly?  It would be helpful if you could give me a feeling
for how the processes talk to each other.  I assume it is a bit
different than the old daemon/slave-daemon/GUI model?

Brian

Index: gdm-session-worker.c
===================================================================
--- gdm-session-worker.c	(revision 5223)
+++ gdm-session-worker.c	(working copy)
@@ -1119,7 +1119,11 @@
         GError   *pam_error;
         gboolean  res;
 
-        g_debug ("Verifying user: %s host: %s service: %s tty: %s", username, hostname, service_name, console_name);
+        g_debug ("Verifying user: %s host: %s service: %s tty: %s",
+                 username     ? username     : "(null)",
+                 hostname     ? hostname     : "(null)",
+                 service_name ? service_name : "(null)",
+                 console_name ? console_name : "(null)");
 
         pam_error = NULL;
         res = gdm_session_worker_initialize_pam (worker,


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