tieto/sipe

Segfault while initiating video call

Opened this issue · 2 comments

Segfault during call setup. Does not always occur. Perhaps 1 in 5 :-(

Stack trace:

Thread 1 "pidgin.orig" received signal SIGSEGV, Segmentation fault.
sipe_core_media_get_call (sipe_public=sipe_public@entry=0x0) at sipe-media.c:1467
1467    sipe-media.c: No such file or directory.
(gdb) bt full
#0  sipe_core_media_get_call (sipe_public=sipe_public@entry=0x0) at sipe-media.c:1467
        result = 0x0
        calls = <optimized out>
#1  0x00007fffd98211f6 in sipe_media_initiate_call (with_video=1, ice_version=SIPE_ICE_DRAFT_6, with=0x5555575105a0 "sip:john.doe@corporation.com", sipe_private=0x0) at sipe-media.c:1347
No locals.
#2  maybe_retry_call_with_ice_version (call_private=0x5555566a7f80, ice_version=SIPE_ICE_DRAFT_6, trans=<optimized out>) at sipe-media.c:1841
        i = <optimized out>
        with = 0x5555575105a0 "sip:john.doe@corporation.com"
        with_video = <optimized out>
        trans = <optimized out>
        ice_version = SIPE_ICE_DRAFT_6
        call_private = 0x5555566a7f80
#3  0x00007fffd98214f5 in process_invite_call_response (sipe_private=0x555557702540, msg=0x55555776d610, trans=0x555556f76440) at sipe-media.c:1932
        ms_diag = <optimized out>
        retry_ice_version = <optimized out>
        title = <optimized out>
        desc = 0x5555577de800
        append_responsestr = 0
        with = <optimized out>
        call_private = 0x5555566a7f80
        dialog = <optimized out>
        smsg = <optimized out>
#4  0x00007fffd97f33f2 in process_input_message (sipe_private=0x555557702540, msg=0x55555776d610) at sip-transport.c:1689
        trans = 0x555556f76440
        transport = 0x55555659c620
        notfound = 0
        method = <optimized out>
#5  0x00007fffd97f3a24 in sip_transport_input (conn=<optimized out>) at sip-transport.c:1784
        msgbd = {msg = 0x55555776d610, protocol = 0x555557501530 "NTLM", rand = 0x5555573d9740 "337692D8", num = 0x555556d11d70 "311", realm = 0x555555edf4c0 "SIP Communications Service", 
          target_name = 0x55555654be30 "a-servername.corporation.se", call_id = 0x5555566c7a10 "5744gF7BDa29BFi9868mABB7tFFEFbFA82xB57Dx", cseq = 0x55555728b7d0 "1", 
          from_url = 0x55555718bad0 "sip:niklas.andersson@corporation.com", from_tag = 0x555557538f00 "5221164535", to_url = 0x55555787f170 "sip:john.doe@corporation.com", 
          to_tag = 0x5555569463e0 "905429792b", p_assertet_identity_sip_uri = 0x5555571e5f30 "sip:defaultEndpoint@domain.com", p_assertet_identity_tel_uri = 0x7fffd982f928 "", expires = 0x0}
        signature_input_str = 0x55555768b410 "<NTLM><337692D8><311><SIP Communications Service><a-servername.corporation.se><5744gF7BDa29BFi9868mABB7tFFEFbFA82xB57Dx><1><INVITE><sip:niklas.andersson@corporation.com><5221164535><sip:john.doe"...
        rspauth = 0x555557292960 "010000006d3d0656de3edf1164000000"
        msg = 0x55555776d610
        remainder = <optimized out>
        sipe_private = 0x555557702540
        transport = 0x55555659c620
        cur = <optimized out>
#6  0x00007ffff1c8c420 in recv_cb (source=<optimized out>, data=<optimized out>) at sslconn.c:185
        gsc = <optimized out>
#7  0x00007fff433e7364 in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so
No symbol table info available.
#8  0x00007ffff780e05a in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#9  0x00007ffff780e400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#10 0x00007ffff780e722 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#11 0x00007ffff36f7395 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#12 0x00007ffff7b956a4 in pidgin_start (argc=1, argv=0x7fffffffdde8) 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>
---Type <return> to continue, or q <return> to quit---
        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 = "d\005\213\021\226\002\v \nH\200\020D\n.\000\b\000\000\004\006@\000\004\265/\b\v\250\020!Q b\204P\002\002\b\005R@\004A\240\344\003\300G\033&\260\306@r\225\000.\vL\202\t\030\213\221\346\\\004\002\017\324l]\000\000\000_\000\000\000`\000\000\000\000\000\000\000a\000\000\000b\000\000\000d\000\000\000e\000\000\000f\000\000\000g\000\000\000j\000\000\000\000\000\000\000l\000\000\000n\000\000\000p\000\000\000q\000\000\000u\000\000\000w\000\000\000y", '\000' <repeats 11 times>, "z\000\000\000{\000\000\000\000\000\000\000}\000\000\000~\000\000\000\177\000\000\000\000\000\000\000\202\000\000\000\203\000\000\000\000\000\000\000\204\000\000\000\000\000\000\000"...
        signal_channel = <optimized out>
        signal_status = <optimized out>
        signal_channel_watcher = 1
        error = 0x55555588e770
        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 = 95208, st_ino = 15762873573703680, st_nlink = 7881423906144263, st_mode = 1, st_uid = 5, st_gid = 0, __pad0 = 0, st_rdev = 0, st_size = 0, st_blksize = 92005, st_blocks = 92005, 
          st_atim = {tv_sec = 2097152, tv_nsec = 25769803777}, st_mtim = {tv_sec = 92936, tv_nsec = 2190088}, st_ctim = {tv_sec = 2190088, tv_nsec = 1952}, __glibc_reserved = {2296, 2097152, 25769803778}}
        long_options = {{name = 0x7ffff7baade8 "config", has_arg = 1, flag = 0x0, val = 99}, {name = 0x7ffff7b98508 "debug", has_arg = 2, flag = 0x0, val = 100}, {name = 0x7ffff7baf50a "force-online", 
            has_arg = 0, flag = 0x0, val = 102}, {name = 0x7ffff7b9a116 "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x7ffff7baf3ef "login", has_arg = 2, flag = 0x0, val = 108}, {
            name = 0x7ffff7baf517 "multiple", has_arg = 0, flag = 0x0, val = 109}, {name = 0x7ffff7baf520 "nologin", has_arg = 0, flag = 0x0, val = 110}, {name = 0x7ffff7baadde "session", has_arg = 1, 
            flag = 0x0, val = 115}, {name = 0x7ffff7b9d110 "version", has_arg = 0, flag = 0x0, val = 118}, {name = 0x7ffff7baadf1 "display", has_arg = 1, flag = 0x0, val = 68}, {name = 0x7ffff7ba6b33 "sync", 
            has_arg = 0, flag = 0x0, val = 83}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
#13 0x00007ffff71fe830 in __libc_start_main (main=0x5555555548c0 <main>, argc=1, argv=0x7fffffffdde8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffddd8)
    at ../csu/libc-start.c:291
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -7153288379771485958, 93824992233760, 140737488346592, 0, 0, -3895825559597711110, -3895843977836199686}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 
              0x7fffffffddf8, 0x7ffff7ffe168}, data = {prev = 0x0, cleanup = 0x0, canceltype = -8712}}}
        not_first_call = <optimized out>
#14 0x0000555555554949 in _start ()
No symbol table info available.
(gdb) 
ii  cdbs                                                  0.4.137ubuntu1~sipe                                               all          common build system for Debian packages
ii  dh-strip-nondeterminism                               0.018-1~sipe                                                      all          file non-deterministic information stripper — Debhelper add-on
ii  gstreamer0.10-nice:amd64                              0.1.13+sipe+collab-201603090603+2222~ubuntu16.04.1                amd64        ICE library (GStreamer 0.10 plugin)
ii  gstreamer1.0-nice:amd64                               0.1.14~sipe-0+201606301046~ubuntu16.04.1                          amd64        ICE library (GStreamer plugin)
ii  libfarstream-0.2-5:amd64                              0.2.8+sipe+collab-1+201606301047~ubuntu16.04.1                    amd64        Audio/Video communications framework: core library
ii  libfile-stripnondeterminism-perl                      0.018-1~sipe                                                      all          file non-deterministic information stripper — Perl module
ii  libnice-dbg:amd64                                     0.1.14~sipe-0+201606301046~ubuntu16.04.1                          amd64        ICE library (debugging symbols)
ii  libnice10:amd64                                       0.1.14~sipe-0+201606301046~ubuntu16.04.1                          amd64        ICE library (shared library)
ii  pidgin-sipe                                           1.21.1+sipe-0+201608261618~ubuntu16.04.1                          amd64        Pidgin plugin for MS Office Communicator and MS Lync
ii  pidgin-sipe-dbg                                       1.21.1+sipe-0+201608261618~ubuntu16.04.1                          amd64        Pidgin plugin for MS Office Communicator and MS Lync (debug symbols)
ii  remmina                                               1.2.0~rcgit+sipe-0+201608170748~ubuntu16.04.1                     amd64        remote desktop client for GNOME desktop environment
ii  remmina-common                                        1.2.0~rcgit+sipe-0+201608170748~ubuntu16.04.1                     all          common files for remmina remote desktop client
ii  remmina-dbg                                           1.2.0~rcgit+sipe-0+201608170748~ubuntu16.04.1                     amd64        remote desktop client - debug pakcage
ii  remmina-plugin-gnome                                  1.2.0~rcgit+sipe-0+201608170748~ubuntu16.04.1                     amd64        GNOME plugin for remmina remote desktop client
ii  remmina-plugin-nx                                     1.2.0~rcgit+sipe-0+201608170748~ubuntu16.04.1                     amd64        NX plugin for remmina remote desktop client
ii  remmina-plugin-rdp                                    1.2.0~rcgit+sipe-0+201608170748~ubuntu16.04.1                     amd64        RDP plugin for remmina remote desktop client
ii  remmina-plugin-telepathy                              1.2.0~rcgit+sipe-0+201608170748~ubuntu16.04.1                     amd64        Telepathy plugin for remmina remote desktop client
ii  remmina-plugin-vnc                                    1.2.0~rcgit+sipe-0+201608170748~ubuntu16.04.1                     amd64        VNC plugin for remmina remote desktop client
ii  remmina-plugin-xdmcp                                  1.2.0~rcgit+sipe-0+201608170748~ubuntu16.04.1                     amd64        XDMCP plugin for remmina remote desktop client

maybe_retry_call_with_ice_version

SIPE_ICE_DRAFT_6 compatibility is likely buggy, but Sipe shouldn't get into that function in the first place unless some very old version of Lync server is used (I doubt this is the case). There must be something not quite right in the SIP signaling messages. Please post here or send me your pidgin log from before the crash; I'd like to inspect the communication more closely.