[ConsoleKit] [multi-seat] console-kit-daemon crash when second time login

Halton Huo Halton.Huo at Sun.COM
Wed Sep 2 04:59:50 PDT 2009


[If you do not care about multi-seat branch, please ignore]

Hi Ray,

There is critical bug for multi-seat branch with following steps:
- I login as a local user and it is fine
- Logout fine
- When I login the second time, console-kit-daemon core with
daemon-pstack.out

Apply the attached patch(ConsoleKit-07-crash.diff), crash will go away
but still have problem. According the history.txt:

1) Start console-kit-daemon
2) Start gdm-binary
3) Login window ready, login as halton.
   'ck-list-session -a' output as 1-login.out
4) User halton logged in, click logout menu.
  'ck-list-session -a' output as 1-logout.out
   SessionSeat1Local and Session1 are removed and added back. 
   I think Session1 should be remove here, right?
5) logout successfully, login again.
   'ck-list-session -a' output as 2-login.out
   SessionSeat1Local is removed and Session2 is created. It is not right
behavior, does it?

Thanks,
Halton.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ConsoleKit-07-crash.diff
Type: text/x-patch
Size: 740 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/consolekit/attachments/20090902/ec5db20c/attachment.bin 
-------------- next part --------------
SessionSeat1Local:
	unix-user = '0'
	realname = 'Super-User'
	seat = 'Seat1'
	session-type = 'LoginWindow'
	display-type = 'Local'
	open = 'FALSE'
	active = 'FALSE'
	x11-display = ''
	x11-display-device = ''
	display-device = ''
	remote-host-name = ''
	is-local = 'TRUE'
	on-since = '2009-09-02T11:29:56.700365Z'
	login-session-id = ''
	idle-since-hint = ''
Session1:
	unix-user = '150184'
	realname = '(null)'
	seat = 'Seat1'
	session-type = ''
	display-type = ''
	open = 'TRUE'
	active = 'TRUE'
	x11-display = ':0'
	x11-display-device = '/dev/vt/2'
	display-device = '/dev/console'
	remote-host-name = ''
	is-local = 'TRUE'
	on-since = '2009-09-02T11:30:53.003484Z'
	login-session-id = ''
	idle-since-hint = ''
-------------- next part --------------
SessionSeat1Local:
	unix-user = '50'
	realname = 'GDM Reserved UID'
	seat = 'Seat1'
	session-type = 'LoginWindow'
	display-type = 'Local'
	open = 'TRUE'
	active = 'TRUE'
	x11-display = ':0'
	x11-display-device = '/dev/vt/2'
	display-device = '/dev/console'
	remote-host-name = ''
	is-local = 'TRUE'
	on-since = '2009-09-02T11:29:56.700365Z'
	login-session-id = ''
	idle-since-hint = ''
Session1:
	unix-user = '0'
	realname = 'Super-User'
	seat = 'Seat1'
	session-type = ''
	display-type = ''
	open = 'FALSE'
	active = 'FALSE'
	x11-display = ''
	x11-display-device = ''
	display-device = ''
	remote-host-name = ''
	is-local = 'TRUE'
	on-since = '2009-09-02T11:30:53.003484Z'
	login-session-id = ''
	idle-since-hint = ''
-------------- next part --------------
t at 1 (l at 1) signal SEGV (no mapping at the fault address) in ck_session_run_programs at line 1653 in file "ck-session.c"
 1653           extra_env[n++] = g_strdup_printf ("CK_SESSION_ID=%s", session->priv->id);
(dbx) where
current thread: t at 1
=>[1] ck_session_run_programs(session = 0x809fc10, action = 0x807c514 "session_added"), line 1653 in "ck-session.c"
  [2] ck_seat_add_session(seat = 0x8099990, session = 0x809fc10, error = (nil)), line 1031 in "ck-seat.c"
  [3] remove_session_for_cookie(manager = 0x809c410, cookie = 0x80a79b8 "14ffd08ad85e72b489720a734a645ae0-1251217528.101045-1944603906", error = 
0x8047644), line 2081 in "ck-manager.c"
  [4] ck_manager_close_session(manager = 0x809c410, cookie = 0x80a79b8 "14ffd08ad85e72b489720a734a645ae0-1251217528.101045-1944603906", context 
= 0x8090780), line 2206 in "ck-manager.c"
  [5] dbus_glib_marshal_ck_manager_VOID__STRING_POINTER(closure = 0x804774c, return_value = (nil), n_param_values = 3U, param_values = 0x80a8600, invocation_hint = (nil), marshal_data = 0x8062970), line 146 in "ck-manager-glue.h"
  [6] invoke_object_method(0x809c410, 0x80799ac, 0x8079a0c, 0x8097868, 0x8097ba0, 0x809ad7d, 0xfef7b0fc, 0xfef6c3f9), at 0xfef6bfb5
  [7] object_registration_message(0x8097868, 0x8097ba0, 0x8097080, 0xfef35b0d), at 0xfef6cee8
  [8] _dbus_object_tree_dispatch_and_unlock(0x8090d08), at 0xfef35c3f
  [9] dbus_connection_dispatch(0x8097868), at 0xfef27b17
  [10] message_queue_dispatch(0x8097508, 0x0, 0x0, 0xfedb4bf8), at 0xfef6a06d
  [11] g_main_context_dispatch(0x8096ca8, 0x0, 0x80a52e8, 0x3), at 0xfedb4dbe
  [12] g_main_context_iterate(0x8096ca8, 0x1, 0x1, 0x8090108), at 0xfedb546f
  [13] g_main_loop_run(0x809f4a0, 0x0), at 0xfedb5a99
  [14] main(argc = 1, argv = 0x8047e90), line 334 in "main.c"
(dbx) p session->priv
session->priv = 0xaaaaaaaa
(dbx) cont
t at 1 (l at 1) signal SEGV (no mapping at the fault address) in 
ck_session_run_programs at line 1653 in file "ck-session.c"
 1653           extra_env[n++] = g_strdup_printf ("CK_SESSION_ID=%s", session->priv->id);

-------------- next part --------------
Session1:
	unix-user = '0'
	realname = 'Super-User'
	seat = 'Seat1'
	session-type = ''
	display-type = ''
	open = 'FALSE'
	active = 'FALSE'
	x11-display = ''
	x11-display-device = ''
	display-device = ''
	remote-host-name = ''
	is-local = 'TRUE'
	on-since = '2009-09-02T11:30:53.003484Z'
	login-session-id = ''
	idle-since-hint = ''
Session2:
	unix-user = '150184'
	realname = '(null)'
	seat = 'Seat1'
	session-type = ''
	display-type = ''
	open = 'TRUE'
	active = 'TRUE'
	x11-display = ':0'
	x11-display-device = '/dev/vt/2'
	display-device = '/dev/console'
	remote-host-name = ''
	is-local = 'TRUE'
	on-since = '2009-09-02T11:33:14.269241Z'
	login-session-id = ''
	idle-since-hint = ''
-------------- next part --------------
1251890996.701 type=SEAT_ADDED : seat-id='Seat1' seat-kind=0
1251890998.987 type=SEAT_SESSION_ADDED : seat-id='Seat1' session-id='SessionSeat1Local' session-type='LoginWindow' session-x11-display=':0' session-x11-display-device='/dev/vt/2' session-display-device='/dev/console' session-remote-host-name='' session-is-local=TRUE session-is-dynamic=TRUE session-unix-user=50 session-creation-time='2009-09-02T11:29:56.700365Z'
1251890998.987 type=SEAT_ACTIVE_SESSION_CHANGED : seat-id='Seat1' session-id='SessionSeat1Local'
1251891051.339 type=SEAT_SESSION_REMOVED : seat-id='Seat1' session-id='SessionSeat1Local' session-type='LoginWindow' session-x11-display='' session-x11-display-device='' session-display-device='' session-remote-host-name='' session-is-local=TRUE session-is-dynamic=TRUE session-unix-user=0 session-creation-time='2009-09-02T11:29:56.700365Z'
1251891051.339 type=SEAT_ACTIVE_SESSION_CHANGED : seat-id='Seat1' session-id=''
1251891051.339 type=SEAT_SESSION_ADDED : seat-id='Seat1' session-id='SessionSeat1Local' session-type='LoginWindow' session-x11-display='' session-x11-display-device='' session-display-device='' session-remote-host-name='' session-is-local=TRUE session-is-dynamic=TRUE session-unix-user=0 session-creation-time='2009-09-02T11:29:56.700365Z'
1251891053.004 type=SEAT_SESSION_ADDED : seat-id='Seat1' session-id='Session1' session-type='' session-x11-display=':0' session-x11-display-device='/dev/vt/2' session-display-device='/dev/console' session-remote-host-name='' session-is-local=TRUE session-is-dynamic=FALSE session-unix-user=150184 session-creation-time='2009-09-02T11:30:53.003484Z'
1251891053.004 type=SEAT_ACTIVE_SESSION_CHANGED : seat-id='Seat1' session-id='Session1'
1251891148.012 type=SEAT_SESSION_REMOVED : seat-id='Seat1' session-id='Session1' session-type='' session-x11-display='' session-x11-display-device='' session-display-device='' session-remote-host-name='' session-is-local=TRUE session-is-dynamic=FALSE session-unix-user=0 session-creation-time='2009-09-02T11:30:53.003484Z'
1251891148.012 type=SEAT_ACTIVE_SESSION_CHANGED : seat-id='Seat1' session-id=''
1251891148.012 type=SEAT_SESSION_ADDED : seat-id='Seat1' session-id='Session1' session-type='' session-x11-display='' session-x11-display-device='' session-display-device='' session-remote-host-name='' session-is-local=TRUE session-is-dynamic=FALSE session-unix-user=0 session-creation-time='2009-09-02T11:30:53.003484Z'
1251891155.165 type=SEAT_SESSION_ADDED : seat-id='Seat1' session-id='SessionSeat1Local' session-type='LoginWindow' session-x11-display=':0' session-x11-display-device='/dev/vt/2' session-display-device='/dev/console' session-remote-host-name='' session-is-local=TRUE session-is-dynamic=TRUE session-unix-user=50 session-creation-time='2009-09-02T11:29:56.700365Z'
1251891155.165 type=SEAT_ACTIVE_SESSION_CHANGED : seat-id='Seat1' session-id='SessionSeat1Local'
1251891193.861 type=SEAT_SESSION_REMOVED : seat-id='Seat1' session-id='SessionSeat1Local' session-type='LoginWindow' session-x11-display='' session-x11-display-device='' session-display-device='' session-remote-host-name='' session-is-local=TRUE session-is-dynamic=TRUE session-unix-user=0 session-creation-time='2009-09-02T11:29:56.700365Z'
1251891193.861 type=SEAT_ACTIVE_SESSION_CHANGED : seat-id='Seat1' session-id=''
1251891194.269 type=SEAT_SESSION_ADDED : seat-id='Seat1' session-id='Session2' session-type='' session-x11-display=':0' session-x11-display-device='/dev/vt/2' session-display-device='/dev/console' session-remote-host-name='' session-is-local=TRUE session-is-dynamic=FALSE session-unix-user=150184 session-creation-time='2009-09-02T11:33:14.269241Z'
1251891194.271 type=SEAT_ACTIVE_SESSION_CHANGED : seat-id='Seat1' session-id='Session2'


More information about the ConsoleKit mailing list