https://bugzilla.novell.com/show_bug.cgi?id=691547
https://bugzilla.novell.com/show_bug.cgi?id=691547#c5
--- Comment #5 from Gary Ching-Pang Lin 2011-06-01 07:21:42 UTC ---
The queued signals are caused by a dbus function:
dbus_connection_send_with_reply_and_block().
The gdm-session-worker calls the function to send "SecretInfoQuery" and then
waits for the reply from gdm-simple-slave.
When the user chooses a session from the menu, gdm-simple-slave sends a dbus
signal, "SetSessionName", to notify the worker to update the session name. But,
the menu shows after the worker sends "SecretInfoQuery", so all the session
selection signals are queued until the slaver replies to "SecretInfoQuery".
(The slaver queues the reply till the user clicks the login button.)
The problem lies within the IPC design of gdm. If two or more consecutive
"SetSessionName" signals with different session names are sent to the worker at
the same time, it will cause a infinite dbus message loop between the greeter,
the slaver, and the worker, and will keep update the session name in the 3
processes. If you were lucky, the session started just right after the right
session name, then you got what you want. For the most of time, I am not a
lucky guy.
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.