Bug 26995

Summary: Crash in probation timeout callback after disconnecting
Product: Telepathy Reporter: Jonny Lamb <jonny.lamb>
Component: mission-controlAssignee: Telepathy bugs list <telepathy-bugs>
Status: RESOLVED FIXED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Jonny Lamb 2010-03-10 04:36:05 UTC
I disconnected an account, and (roughly around that time) MC crashed.

Program received signal SIGSEGV, Segmentation fault.
0xb7f884e6 in tp_proxy_get_object_path (self=0x0) at proxy.c:1157
1157	proxy.c: No such file or directory.
	in proxy.c
(gdb) bt full
#0  0xb7f884e6 in tp_proxy_get_object_path (self=0x0) at proxy.c:1157
No locals.
#1  0x08067a71 in mcd_connection_probation_ended_cb (user_data=0x8098548) at mcd-connection.c:1010
        __PRETTY_FUNCTION__ = "mcd_connection_probation_ended_cb"
#2  0xb7da11ec in g_timeout_dispatch (source=0x80d42b0, callback=0, user_data=0x8098548)
    at /build/buildd-glib2.0_2.22.4-1-i386-jRfNZE/glib2.0-2.22.4/glib/gmain.c:3396
No locals.
#3  0xb7da0b38 in g_main_dispatch (context=0x8094308) at /build/buildd-glib2.0_2.22.4-1-i386-jRfNZE/glib2.0-2.22.4/glib/gmain.c:1960
        dispatch = 0xb7da11c0 <g_timeout_dispatch>
        user_data = 0x8098548
        callback = 0x8067a50 <mcd_connection_probation_ended_cb>
        cb_funcs = 0xb7e1c4bc
        cb_data = 0x80f5a60
        current_source_link = {data = 0x80d42b0, next = 0x0}
        source = 0x80d42b0
        current = 0x8090a00
        i = 0
#4  IA__g_main_context_dispatch (context=0x8094308) at /build/buildd-glib2.0_2.22.4-1-i386-jRfNZE/glib2.0-2.22.4/glib/gmain.c:2513
No locals.
#5  0xb7da43d0 in g_main_context_iterate (context=0x8094308, block=<value optimized out>, dispatch=1, self=0x8095d28)
    at /build/buildd-glib2.0_2.22.4-1-i386-jRfNZE/glib2.0-2.22.4/glib/gmain.c:2591
        max_priority = 2147483647
        timeout = 881
        some_ready = 1
        nfds = <value optimized out>
        allocated_nfds = <value optimized out>
        fds = <value optimized out>
        __PRETTY_FUNCTION__ = "g_main_context_iterate"
#6  0xb7da483f in IA__g_main_loop_run (loop=0x80982a8) at /build/buildd-glib2.0_2.22.4-1-i386-jRfNZE/glib2.0-2.22.4/glib/gmain.c:2799
        self = 0x8095d28
        __PRETTY_FUNCTION__ = "IA__g_main_loop_run"
#7  0x080513ef in main (argc=<value optimized out>, argv=<value optimized out>) at mc-server.c:81
        mcd = <value optimized out>

I've been playing the same connect/disconnect dance for quite a while now with MC in gdb, and it's only happened once, so I reckon reproducing it will be extremely hard. It looks like the probation timeout was activated perhaps /just/ at the time of the disconnection, or at least before the source could be removed?

Version: 5.3.2-2 (Debian unstable)
Comment 1 Simon McVittie 2010-09-13 03:15:51 UTC
I believe Vivek fixed this in git for 5.5.4.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.