tieto / sipe

A third-party Pidgin plugin for Microsoft Lync/OCS - clone of upstream http://repo.or.cz/w/siplcs.git
GNU General Public License v2.0
129 stars 24 forks source link

Infinite loop on network configuration change #54

Closed gy-lehel closed 8 years ago

gy-lehel commented 8 years ago

When switching computer from wired to wireless an infinite loop is entered.

ii  pidgin                                                         1:3.0.0~collab-0.20630+201604271001~ amd64                                graphical multi-protocol instant messaging client for X
ii  pidgin-data                                                    1:3.0.0~collab-0.20630+201604271001~ all                                  multi-protocol instant messaging client - data files
ii  pidgin-dbg                                                     1:3.0.0~collab-0.20630+201604271001~ amd64                                Debugging symbols for Pidgin
un  pidgin-facebookchat                                            <none>                               <none>                               (no description available)
ii  pidgin-gnome-keyring                                           2.0~trusty-1                         amd64                                integrates pidgin (and libpurple) with the system keyring
ii  pidgin-otr                                                     4.0.0-2                              amd64                                Off-the-Record Messaging plugin for Pidgin
rc  pidgin-ppa                                                     0.0.9                                all                                  Pidgin PPA
ii  pidgin-sipe                                                    1.21.0+collab-201604260531+3207~ubun amd64                                Pidgin plugin for MS Office Communicator and MS Lync
ii  pidgin-sipe-dbg                                                1.21.0+collab-201604260531+3207~ubun amd64                                Pidgin plugin for MS Office Communicator and MS Lync (debug symbols)

Backtrace:

(gdb) bt full
#0  0x00007fb41dfe8332 in g_type_check_instance_cast () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#1  0x00007fb41d9c00f4 in purple_ssl_write (gsc=<optimized out>, data=0x555e54c59b9b, len=len@entry=2917) at sslconn.c:342
        output = <optimized out>
        outlen = <optimized out>
        error = 0x0
        __FUNCTION__ = "purple_ssl_write"
#2  0x00007fb405f9408d in transport_write (transport=transport@entry=0x555e545b1cf0) at purple-transport.c:368
        written = <optimized out>
        max_write = 2917
#3  0x00007fb405f945a8 in sipe_backend_transport_flush (conn=0x555e545b1cf0) at purple-transport.c:430
        transport = 0x555e545b1cf0
#4  0x00007fb405f68350 in sipe_core_deallocate (sipe_public=0x555e54541d10) at sipe-core.c:435
        sipe_private = 0x555e54541d10
#5  0x00007fb405f5674e in sipe_purple_close (gc=0x555e5449c480) at purple-plugin-common.c:519
        purple_private = 0x555e54544be0
        sipe_public = <optimized out>
#6  0x00007fb41d9764c6 in purple_connection_finalize (object=0x555e5449c480) at connection.c:789
        gc = 0x555e5449c480
        priv = 0x555e5449c420
        account = 0x555e536a0270
        buddies = <optimized out>
        remove = 1
#7  0x00007fb41dfcadba in g_object_unref () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#8  0x00007fb41d95a938 in purple_account_disconnect (account=0x555e536a0270) at account.c:385
        gc = <optimized out>
        priv = 0x555e536a01c0
        username = <optimized out>
        __FUNCTION__ = "purple_account_disconnect"
#9  0x00007fb41d975275 in purple_connection_disconnect_cb (data=0x555e536a0270) at connection.c:456
        account = 0x555e536a0270
        gc = 0x555e5449c480
        priv = <optimized out>
#10 0x00007fb42311a703 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#11 0x00007fb423119ce5 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#12 0x00007fb42311a048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#13 0x00007fb42311a30a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#14 0x00007fb41f35ce25 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#15 0x00007fb4234a0435 in pidgin_start (argc=1, argv=0x7ffec8570fe8) at libpidgin.c:850
        opt_force_online = 0
        opt_help = <optimized out>
        opt_login = 0
        opt_nologin = 0
        opt_version = 0
        opt_si = 1
        opt_config_dir_arg = 0x0
        opt_login_arg = <optimized out>
        opt_session_arg = 0x0
        search_path = <optimized out>
        provider = <optimized out>
        screen = <optimized out>
        accounts = <optimized out>
        sig_indx = 1
        sigset = {__val = {82950, 0 <repeats 15 times>}}
        errmsg = "\000\357V\310\376\177\000\000\070+\213#\264\177\000\000\340\017W\310\376\177\000\000@\003\000\000\000\000\000\000\177ELF\002\001\001\000\000\000\000\000\000\000\000\000\003\000>\000\001\000\000\000\240\t\000\000\000\000\000\000@\000\000\000\000\000\000\000pA\000\000\000\000\000\000\000\000\000\000@\000\070\000\a\000@\000\032\000\031\000\001\000\000\000\005", '\000' <repeats 27 times>, "\\0\000\000\000\000\000\000\\0\000\000\000\000\000\000\000\000 \000\000\000\000\000\001\000\000\000\006\000\000\000\350=\000\000\000\000\000\000\350= \000\000\000\000\000\350= \000\000\000\000\000\200\002\000\000\000\000\000\000\210\002\000\000\000\000\000\000\000\000"...
        signal_channel = <optimized out>
---Type <return> to continue, or q <return> to quit--- 
        signal_status = <optimized out>
        signal_channel_watcher = 1
        error = 0x7fb408001da0
        segfault_message_tmp = <optimized out>
        opt = <optimized out>
        gui_check = <optimized out>
        debug_enabled = <optimized out>
        debug_colored = <optimized out>
        active_accounts = <optimized out>
        st = {st_dev = 64513, st_ino = 131924, st_nlink = 2, st_mode = 16832, st_uid = 79260, st_gid = 12565, __pad0 = 0, st_rdev = 0, st_size = 4096, st_blksize = 4096, st_blocks = 8, st_atim = {tv_sec = 1445415107, tv_nsec = 279910880}, st_mtim = {tv_sec = 1445415107, 
            tv_nsec = 279910880}, st_ctim = {tv_sec = 1445415107, tv_nsec = 279910880}, __glibc_reserved = {0, 0, 0}}
        long_options = {{name = 0x7fb4234b5d28 "config", has_arg = 1, flag = 0x0, val = 99}, {name = 0x7fb4234a31c8 "debug", has_arg = 2, flag = 0x0, val = 100}, {name = 0x7fb4234ba44a "force-online", has_arg = 0, flag = 0x0, val = 102}, {name = 0x7fb4234a4dd6 "help", 
            has_arg = 0, flag = 0x0, val = 104}, {name = 0x7fb4234ba32f "login", has_arg = 2, flag = 0x0, val = 108}, {name = 0x7fb4234ba457 "multiple", has_arg = 0, flag = 0x0, val = 109}, {name = 0x7fb4234ba460 "nologin", has_arg = 0, flag = 0x0, val = 110}, {
            name = 0x7fb4234b5d1e "session", has_arg = 1, flag = 0x0, val = 115}, {name = 0x7fb4234a7ddd "version", has_arg = 0, flag = 0x0, val = 118}, {name = 0x7fb4234b5d31 "display", has_arg = 1, flag = 0x0, val = 68}, {name = 0x7fb4234b1935 "sync", has_arg = 0, 
            flag = 0x0, val = 83}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
#16 0x00007fb422b0fec5 in __libc_start_main (main=0x555e52eba960 <main>, argc=1, argv=0x7ffec8570fe8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffec8570fd8) at libc-start.c:287
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 9169521225027924908, 93863606462901, 140732259569632, 0, 0, -9170104723744640084, -9211853994638724180}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7ffec8570ff8, 0x7fb4239061c8}, data = {prev = 0x0, 
              cleanup = 0x0, canceltype = -933818376}}}
        not_first_call = <optimized out>
#17 0x0000555e52eba9de in _start ()(gdb) bt full
#0  0x00007fb41dfe8332 in g_type_check_instance_cast () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#1  0x00007fb41d9c00f4 in purple_ssl_write (gsc=<optimized out>, data=0x555e54c59b9b, len=len@entry=2917) at sslconn.c:342
        output = <optimized out>
        outlen = <optimized out>
        error = 0x0
        __FUNCTION__ = "purple_ssl_write"
#2  0x00007fb405f9408d in transport_write (transport=transport@entry=0x555e545b1cf0) at purple-transport.c:368
        written = <optimized out>
        max_write = 2917
#3  0x00007fb405f945a8 in sipe_backend_transport_flush (conn=0x555e545b1cf0) at purple-transport.c:430
        transport = 0x555e545b1cf0
#4  0x00007fb405f68350 in sipe_core_deallocate (sipe_public=0x555e54541d10) at sipe-core.c:435
        sipe_private = 0x555e54541d10
#5  0x00007fb405f5674e in sipe_purple_close (gc=0x555e5449c480) at purple-plugin-common.c:519
        purple_private = 0x555e54544be0
        sipe_public = <optimized out>
#6  0x00007fb41d9764c6 in purple_connection_finalize (object=0x555e5449c480) at connection.c:789
        gc = 0x555e5449c480
        priv = 0x555e5449c420
        account = 0x555e536a0270
        buddies = <optimized out>
        remove = 1
#7  0x00007fb41dfcadba in g_object_unref () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#8  0x00007fb41d95a938 in purple_account_disconnect (account=0x555e536a0270) at account.c:385
        gc = <optimized out>
        priv = 0x555e536a01c0
        username = <optimized out>
        __FUNCTION__ = "purple_account_disconnect"
#9  0x00007fb41d975275 in purple_connection_disconnect_cb (data=0x555e536a0270) at connection.c:456
        account = 0x555e536a0270
        gc = 0x555e5449c480
        priv = <optimized out>
#10 0x00007fb42311a703 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#11 0x00007fb423119ce5 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#12 0x00007fb42311a048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#13 0x00007fb42311a30a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#14 0x00007fb41f35ce25 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#15 0x00007fb4234a0435 in pidgin_start (argc=1, argv=0x7ffec8570fe8) at libpidgin.c:850
        opt_force_online = 0
        opt_help = <optimized out>
        opt_login = 0
        opt_nologin = 0
        opt_version = 0
        opt_si = 1
        opt_config_dir_arg = 0x0
        opt_login_arg = <optimized out>
        opt_session_arg = 0x0
        search_path = <optimized out>
        provider = <optimized out>
        screen = <optimized out>
        accounts = <optimized out>
        sig_indx = 1
        sigset = {__val = {82950, 0 <repeats 15 times>}}
        errmsg = "\000\357V\310\376\177\000\000\070+\213#\264\177\000\000\340\017W\310\376\177\000\000@\003\000\000\000\000\000\000\177ELF\002\001\001\000\000\000\000\000\000\000\000\000\003\000>\000\001\000\000\000\240\t\000\000\000\000\000\000@\000\000\000\000\000\000\000pA\000\000\000\000\000\000\000\000\000\000@\000\070\000\a\000@\000\032\000\031\000\001\000\000\000\005", '\000' <repeats 27 times>, "\\0\000\000\000\000\000\000\\0\000\000\000\000\000\000\000\000 \000\000\000\000\000\001\000\000\000\006\000\000\000\350=\000\000\000\000\000\000\350= \000\000\000\000\000\350= \000\000\000\000\000\200\002\000\000\000\000\000\000\210\002\000\000\000\000\000\000\000\000"...
        signal_channel = <optimized out>
---Type <return> to continue, or q <return> to quit--- 
        signal_status = <optimized out>
        signal_channel_watcher = 1
        error = 0x7fb408001da0
        segfault_message_tmp = <optimized out>
        opt = <optimized out>
        gui_check = <optimized out>
        debug_enabled = <optimized out>
        debug_colored = <optimized out>
        active_accounts = <optimized out>
        st = {st_dev = 64513, st_ino = 131924, st_nlink = 2, st_mode = 16832, st_uid = 79260, st_gid = 12565, __pad0 = 0, st_rdev = 0, st_size = 4096, st_blksize = 4096, st_blocks = 8, st_atim = {tv_sec = 1445415107, tv_nsec = 279910880}, st_mtim = {tv_sec = 1445415107, 
            tv_nsec = 279910880}, st_ctim = {tv_sec = 1445415107, tv_nsec = 279910880}, __glibc_reserved = {0, 0, 0}}
        long_options = {{name = 0x7fb4234b5d28 "config", has_arg = 1, flag = 0x0, val = 99}, {name = 0x7fb4234a31c8 "debug", has_arg = 2, flag = 0x0, val = 100}, {name = 0x7fb4234ba44a "force-online", has_arg = 0, flag = 0x0, val = 102}, {name = 0x7fb4234a4dd6 "help", 
            has_arg = 0, flag = 0x0, val = 104}, {name = 0x7fb4234ba32f "login", has_arg = 2, flag = 0x0, val = 108}, {name = 0x7fb4234ba457 "multiple", has_arg = 0, flag = 0x0, val = 109}, {name = 0x7fb4234ba460 "nologin", has_arg = 0, flag = 0x0, val = 110}, {
            name = 0x7fb4234b5d1e "session", has_arg = 1, flag = 0x0, val = 115}, {name = 0x7fb4234a7ddd "version", has_arg = 0, flag = 0x0, val = 118}, {name = 0x7fb4234b5d31 "display", has_arg = 1, flag = 0x0, val = 68}, {name = 0x7fb4234b1935 "sync", has_arg = 0, 
            flag = 0x0, val = 83}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
#16 0x00007fb422b0fec5 in __libc_start_main (main=0x555e52eba960 <main>, argc=1, argv=0x7ffec8570fe8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffec8570fd8) at libc-start.c:287
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 9169521225027924908, 93863606462901, 140732259569632, 0, 0, -9170104723744640084, -9211853994638724180}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7ffec8570ff8, 0x7fb4239061c8}, data = {prev = 0x0, 
              cleanup = 0x0, canceltype = -933818376}}}
        not_first_call = <optimized out>
#17 0x0000555e52eba9de in _start ()
xhaakon commented 8 years ago

Please check if my latest updates help with this problem. Packages are being built on Launchpad right now and you may need to wait a while before they appear in the PPA:

pidgin - 1:3.0.0~collab-0.20633+201604291401~ubuntu16.04.1
pidgin - 1:3.0.0~collab-0.20633+201604291401~ubuntu15.10.1
pidgin - 1:3.0.0~collab-0.20633+201604291401~ubuntu15.04.1
pidgin - 1:3.0.0~collab-0.20633+201604291401~ubuntu14.04.1

pidgin-sipe - 1.21.0+collab-201604291402+3209~ubuntu15.10.1
pidgin-sipe - 1.21.0+collab-201604291401+3209~ubuntu16.04.1
pidgin-sipe - 1.21.0+collab-201604291401+3209~ubuntu15.04.1
pidgin-sipe - 1.21.0+collab-201604291401+3209~ubuntu14.04.1

You need both Pidgin and Sipe.

@tmuehlhoff I think your issue with Pidgin getting randomly stuck with 100%CPU is a duplicate of this bug, so try this one too.

gy-lehel commented 8 years ago

Now network changes are handled as expected.