Sometimes after logging out, the session manager crashes. Nothing bad happens, only a core resides in $HOME. Reproducible: Always Steps to Reproduce: 1. 2. 3. #0 0x400a4ba2 in _IceTransClose () from /usr/X11R6/lib/libICE.so.6 #1 0x400a44ac in _IceFreeConnection () from /usr/X11R6/lib/libICE.so.6 #2 0x400a465a in IceCloseConnection () from /usr/X11R6/lib/libICE.so.6 #3 0x0805461e in xfsm_manager_close_connection (client=0x40766830, cleanup=1) at xfsm-manager.c:927 #4 0x40093de8 in _SmsProcessMessage () from /usr/X11R6/lib/libSM.so.6 #5 0x400a3207 in IceProcessMessages () from /usr/X11R6/lib/libICE.so.6 #6 0x0804f7de in ice_process_messages (channel=0x8083a88, condition=G_IO_IN, user_data=0x8084810) at ice-layer.c:103 #7 0x4061dd5f in g_io_unix_dispatch () from /opt/gnome/lib/libglib-2.0.so.0 #8 0x405f6d17 in g_main_context_dispatch () from /opt/gnome/lib/libglib-2.0.so.0 #9 0x405f9467 in g_main_context_iterate () from /opt/gnome/lib/libglib-2.0.so.0 #10 0x405fa677 in g_main_loop_run () from /opt/gnome/lib/libglib-2.0.so.0 #11 0x402bce43 in gtk_main () from /opt/gnome/lib/libgtk-x11-2.0.so.0 #12 0x0804fc87 in main (argc=1, argv=0xbffff1b4) at main.c:244
This is really weird. The only possible cause I can think of is that ice_conn points to an invalid location, which would mean that either libSM has a serious bug or the sms_conn is invalid. But if sms_conn is invalid, it is unlikely that SmsCleanUp() would succeed. In addition, if ice_conn is invalid, IceSetShutdownNegotiation() shouldn't work. But lets see, for the core file, do: frame 3 print client->sms_conn print ice_conn
(gdb) frame 3 #3 0x400a465a in IceCloseConnection () from /usr/X11R6/lib/libICE.so.6 (gdb) print client->sms_conn No symbol "client" in current context. (gdb) print ice_conn No symbol "ice_conn" in current context. (gdb) frame 4 #4 0x0805461e in xfsm_manager_close_connection (client=0x8184808, cleanup=1) at xfsm-manager.c:927 927 IceCloseConnection (ice_conn); (gdb) print client->sms_conn $1 = 0x40766830 (gdb) print ice_conn $2 = 0x400ac8f8
Don't ask me why the "bt" has changed, I don't know it ...
Please enable verbose output and post the last messages of xfce4-session.
The bug is not reproducable. Only sometimes.
How would I enablel verbose output.
Set XFSM_VERBOSE prior to running xfce4-session. xfce4-session will then print extensive debug informations to ~/.xfce4-session.verbose-log.
Created attachment 163 Non-crash verbose output
I need the verbose output for the crash, because I think I know why the IceCloseConnection() call fails.
Since the crash is not reproducable ... All what I can do is to enable the verbose output now and wait until it crashes again. I'll send you the file then.
Sure, thanks.
Created attachment 171 Don't know if it contains the information you need. BT now was #0 0x400a4ba2 in _IceTransClose () from /usr/X11R6/lib/libICE.so.6 #1 0x400a44ac in _IceFreeConnection () from /usr/X11R6/lib/libICE.so.6 #2 0x400a465a in IceCloseConnection () from /usr/X11R6/lib/libICE.so.6 #3 0x0805461e in xfsm_manager_close_connection (client=0x40766830, cleanup=1) at xfsm-manager.c:927 #4 0x40093de8 in _SmsProcessMessage () from /usr/X11R6/lib/libSM.so.6 #5 0x400a3207 in IceProcessMessages () from /usr/X11R6/lib/libICE.so.6 #6 0x0804f7de in ice_process_messages (channel=0x8184b60, condition=G_IO_IN, user_data=0x8084810) at ice-layer.c:103 #7 0x4061dd5f in g_io_unix_dispatch () from /opt/gnome/lib/libglib-2.0.so.0 #8 0x405f6d17 in g_main_context_dispatch () from /opt/gnome/lib/libglib-2.0.so.0 #9 0x405f9467 in g_main_context_iterate () from /opt/gnome/lib/libglib-2.0.so.0 #10 0x405fa677 in g_main_loop_run () from /opt/gnome/lib/libglib-2.0.so.0 #11 0x402bce43 in gtk_main () from /opt/gnome/lib/libgtk-x11-2.0.so.0 #12 0x0804fc87 in main (argc=1, argv=0xbffff144) at main.c:244
What about the relevant lines from the verbose log?
Well, I simply attached the whole logfile. Don't know which is relevant. (Unfortunately, there are not timestamps in the log.)
Sorry, I'm blind. Somehow I didn't notice the attachment. I'll look into this tomorrow, thanks.
Hm, the ICE I/O errors look weird, tho nothing critical afterall. What is this qpamat application? It seems to be the application that actually causes the problem. Can you try to logout with qpamat running and without qpamat running and see if that affects xfce4-session's "crashing behaviour"?
http://qpamat.berlios.de/, self-written. Doesn't contain session-management specific code (something on my TODO list ;-)). I'll try it out tomorrow.
No direct releation, I did a shutdown with qpamat now, without a core file.
Hello, now the situation is: The crash is reproducable with QPaMaT started while logging out and the session manager does not shutdown the system if this was the choosen logout method because of that crash. I ported QPaMaT to Qt 4.0.0 (which may be the difference in behaviour here) and upgraded to SuSE 9.3 (which shouldn't be the problem). A current backtrace: #0 0x400b12d0 in IceProtocolShutdown () from /usr/X11R6/lib/libICE.so.6 #1 0x4009f401 in SmsCleanUp () from /usr/X11R6/lib/libSM.so.6 #2 0x08053d28 in xfsm_manager_close_connection (client=0x614b204c, cleanup=1) at xfsm-manager.c:925 #3 0x400a0db8 in _SmsProcessMessage () from /usr/X11R6/lib/libSM.so.6 #4 0x400b01d7 in IceProcessMessages () from /usr/X11R6/lib/libICE.so.6 #5 0x0804ef7e in ice_process_messages (channel=0x808e908, condition=G_IO_IN, user_data=0x80a0d18) at ice-layer.c:103 #6 0x4063569f in g_io_channel_unix_get_fd () from /opt/gnome/lib/libglib-2.0.so.0 #7 0x4060e967 in g_main_context_dispatch () from /opt/gnome/lib/libglib-2.0.so.0 #8 0x40610ce2 in g_main_context_acquire () from /opt/gnome/lib/libglib-2.0.so.0 #9 0x40611cf7 in g_main_loop_run () from /opt/gnome/lib/libglib-2.0.so.0 #10 0x402cfbe3 in gtk_main () from /opt/gnome/lib/libgtk-x11-2.0.so.0 #11 0x0804f427 in main (argc=1, argv=0xbfffee64) at main.c:244 The logfile is attached. QPaMaT is simple Qt 4.0.0 without session management specific code. Don't know if I do something really wrong (removing a file in a signal handler shouldn't be a problem).
Hm, I cannot thing of any reason here. Does the client crash as well?
No (at least it leaves no core-file). If you need some variables from the core-file, just say which one.
Can you install libSM and libICE with debugging symbols and check the SmsCleanUp() and IceProtocolShutdown() calls?
This one, I got another bt (I'll not delete this one if you have any questions). For the result, see the attachment.
Created attachment 279 GDB session
BTW: I get this crash not only with QPaMaT but with every Qt4 application (designer, assistant). Self-compiled and RPMs from SuSE.
Closing this bug as 'fixed' since there were no replies since 2005-07-27...