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

pidgin craches during connection phase #136

Open jcatta opened 7 years ago

jcatta commented 7 years ago

Submitter ################################################################## thomas.lindberg@ericsson.com ################################################################## Software versions ################################################################## Package: pidgin-sipe
Version: 1.21.1+sipe-0+201612161030~ubuntu14.04.1

Package: pidgin
Version: 1:3.0.0~collab-1+201612222033~ubuntu14.04.1 ################################################################## Symptom ################################################################## Pidgin craches during connection phase. It handles alot of process_incoming_notify_rlmi and craches due to a NULL reference ##################################################################

(08:34:58) GLib-GObject: g_type_instance_get_private: assertion 'instance != NULL && instance->g_class != NULL' failed
(08:34:58) g_log: purple_buddy_get_presence: assertion 'priv != NULL' failed
(08:34:58) GLib-GObject: g_type_instance_get_private: assertion 'instance != NULL && instance->g_class != NULL' failed
(08:34:58) g_log: purple_presence_get_active_status: assertion 'priv != NULL' failed
(08:34:58) g_log: purple_status_get_id: assertion 'PURPLE_IS_STATUS(status)' failed
Pidgin 3.0.0devel has segfaulted and attempted to dump a core file.
This is a bug in the software and has happened through

################################################################## STACK TRACE ##################################################################

[New Thread 0x7fff6c922700 (LWP 18245)]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7808fe0 in g_str_hash () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) bt full 
#0  0x00007ffff7808fe0 in g_str_hash () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#1  0x00007ffff7808569 in g_hash_table_lookup () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2  0x00007fffda426056 in sipe_purple_token_to_activity (token=<optimized out>) at purple-plugin-common.c:142
No locals.
#3  0x00007fffda4624e4 in sipe_backend_buddy_get_status (sipe_public=sipe_public@entry=0x165c400, uri=uri@entry=0x17a8b90 "sip:helena.aslundh@ericsson.com")
    at purple-buddy.c:176
        purple_private = <optimized out>
        pbuddy = <optimized out>
        presence = <optimized out>
        pstatus = <optimized out>
#4  0x00007fffda444127 in process_incoming_notify_rlmi (sipe_private=0x165c400, data=<optimized out>, len=<optimized out>) at sipe-notify.c:936
        activity = <optimized out>
        uri = 0x17a8b90 "sip:helena.aslundh@ericsson.com"
        sbuddy = 0x1720450
        xn_categories = 0xc99e10
        xn_category = <optimized out>
        status = 0x0
        do_update_status = 1
        has_note_cleaned = 1
        has_free_busy_cleaned = 0
#5  0x00007fffda4667bc in sipe_mime_parts_foreach (type=<optimized out>, body=<optimized out>, callback=0x7fffda444d40 <sipe_presence_mime_cb>, 
    user_data=0x165c400) at purple-mime.c:91
        content = <optimized out>
        content_decoded = 0x0
        length = 4254
        fields = 0x16d7680
        content_type = <optimized out>
        parts = 0xa9a460
        doc = 0x1874e60 "Content-Type: multipart/related; type=\"application/rlmi+xml\";start=resourceList; boundary=a6eeb0033ab1413b9a72f7a5ec308932\r\n\r\n\r\n--a6eeb0033ab1413b9a72f7a5ec308932\r\nContent-Transfer-Encoding: binary\r\nC"...
        mime = 0x170ac00
#6  0x00007fffda42d21a in sip_transport_input (conn=<optimized out>) at sip-transport.c:1793
        msgbd = {msg = 0x170c7a0, protocol = 0xaccca0 "NTLM", rand = 0xabee10 "752D2C05", num = 0xab9df0 "23", realm = 0x17f6200 "SIP Communications Service", 
          target_name = 0x16cb0b0 "sessmwfe2102.ericsson.se", call_id = 0xd8a750 "0220g82E5a66EBi7304mC33Et1C4Eb75E6x1D42x", cseq = 0xac3f90 "3", 
          from_url = 0x16d7860 "sip:thomas.lindberg@ericsson.com", from_tag = 0xad8440 "12670080", to_url = 0x16f3e30 "sip:thomas.lindberg@ericsson.com", 
          to_tag = 0x17a3970 "2558233093", p_assertet_identity_sip_uri = 0x7fffda469430 "", p_assertet_identity_tel_uri = 0x7fffda469430 "", expires = 0x0}
        signature_input_str = 0x171c1a0 "<NTLM><752D2C05><23><SIP Communications Service><sessmwfe2102.ericsson.se><0220g82E5a66EBi7304mC33Et1C4Eb75E6x1D42x><3><BENOTIFY><sip:thomas.lindberg@ericsson.com><12670080><sip:thomas.lindberg@ericss"...
        rspauth = 0x172d630 "010000009bd5e7f615a2c28464000000"
        msg = 0x170c7a0
        remainder = <optimized out>
        sipe_private = 0x165c400
        transport = 0x16c2770
        cur = <optimized out>
#7  0x00007ffff20c1473 in recv_cb (source=<optimized out>, data=<optimized out>) at /build/pidgin-tVMxFZ/pidgin-3.0.0~collab/./libpurple/sslconn.c:185
        gsc = <optimized out>
#8  0x00007fff6cd791a4 in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so
No symbol table info available.
#9  0x00007ffff7818ce5 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#10 0x00007ffff7819048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#11 0x00007ffff781930a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#12 0x00007ffff3a5be25 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#13 0x00007ffff7b9aa35 in pidgin_start (argc=1, argv=0x7fffffffdd68) at /build/pidgin-tVMxFZ/pidgin-3.0.0~collab/./pidgin/libpidgin.c:846
        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\274\377\377\377\177\000\000\070\373\372\367\377\177\000\000`\335\377\377\377\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>
        signal_status = <optimized out>
        signal_channel_watcher = 1
        segfault_message_tmp = <optimized out>
        opt = <optimized out>
        gui_check = <optimized out>
---Type <return> to continue, or q <return> to quit--- 
        debug_enabled = <optimized out>
        debug_colored = <optimized out>
        active_accounts = <optimized out>
        st = {st_dev = 4294967300, st_ino = 18, st_nlink = 4069054363051241268, st_mode = 1, st_uid = 0, st_gid = 4294949840, __pad0 = 32767, 
          st_rdev = 140737351932409, st_size = 0, st_blksize = 15032381856, st_blocks = 140737488337872, st_atim = {tv_sec = 140737351913361, 
            tv_nsec = 140737488337920}, st_mtim = {tv_sec = 140737351932409, tv_nsec = 0}, st_ctim = {tv_sec = 15032381856, tv_nsec = 140737488337920}, 
          __glibc_reserved = {140737351913361, 140737488337968, 140737021710448}}
        error = 0x7180a0
        long_options = {{name = 0x7ffff7baf2e8 "config", has_arg = 1, flag = 0x0, val = 99}, {name = 0x7ffff7b9d808 "debug", has_arg = 2, flag = 0x0, 
            val = 100}, {name = 0x7ffff7bb3b4a "force-online", has_arg = 0, flag = 0x0, val = 102}, {name = 0x7ffff7b9f42c "help", has_arg = 0, flag = 0x0, 
            val = 104}, {name = 0x7ffff7bb3a2f "login", has_arg = 2, flag = 0x0, val = 108}, {name = 0x7ffff7bb3b57 "multiple", has_arg = 0, flag = 0x0, 
            val = 109}, {name = 0x7ffff7bb3b60 "nologin", has_arg = 0, flag = 0x0, val = 110}, {name = 0x7ffff7baf2de "session", has_arg = 1, flag = 0x0, 
            val = 115}, {name = 0x7ffff7ba257d "version", has_arg = 0, flag = 0x0, val = 118}, {name = 0x7ffff7baf2f1 "display", has_arg = 1, flag = 0x0, 
            val = 68}, {name = 0x7ffff7baaea5 "sync", has_arg = 0, flag = 0x0, val = 83}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
#14 0x00007ffff720ef45 in __libc_start_main (main=0x400850 <main>, argc=1, argv=0x7fffffffdd68, init=<optimized out>, fini=<optimized out>, 
    rtld_fini=<optimized out>, stack_end=0x7fffffffdd58) at libc-start.c:287
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 1660409355447279798, 4196514, 140737488346464, 0, 0, -1660409354353139530, -1660390362598760266}, 
              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7fffffffdd78, 0x7ffff7ffe1c8}, data = {prev = 0x0, cleanup = 0x0, canceltype = -8840}}}
        not_first_call = <optimized out>
#15 0x00000000004008cb in _start ()
No symbol table info available.
xhaakon commented 7 years ago

Do you have a complete log from this session?

Please note that for the log to be useful, you have to run Pidgin like this:

PURPLE_UNSAFE_DEBUG=1 pidgin --debug

You can send the log (compressed pls.) to the mail address in my profile rather than posting it here publicly.

tmuehlhoff commented 7 years ago

I'll have a crash logged here as well, I sent the chopped log to xhaakon via E-Mail. I'm not sure they are the same crash. /t.

xhaakon commented 7 years ago

@tmuehlhoff Your crash likely too concerns populating the contact list because if happened very shortly after connecting to the Lync server. The messages, however, don't match @jcatta's original report - no assert errors in purple_status_get_id() etc. Actually, I don't see indication of any problem in the file at all. If Pidgin crashed right after (11:35:21) sipe: transport_deferred_destroy: 0x1f3b100, the cause wasn't logged.

(11:35:21) sipe: Read error: No such file or directory (2)
(11:35:21) sipe: sipe_http_transport_drop: dropping connection 'www.external-user-photo-catalog.com:443': Read error
(11:35:21) sipe: sipe_http_transport_free: destroying connection 'www.external-user-photo-catalog.com:443'
(11:35:21) sipe: sipe_schedule_remove: action name=<+http-timeout>
(11:35:21) sipe: sipe_schedule_allocate timeouts count 10 after addition
(11:35:21) sipe: scheduling action <+http-timeout> timeout 16 seconds
(11:35:21) sslconn: Connection closed.
(11:35:21) sipe: transport_deferred_destroy: 0x1f3b100

Those final messages in the output had me wondering if there was some problem with downloading user images from external URLs (i.e. from a different source than Active Directory). I tried using some of the logged photo URLs in my Sipe and got the same Read error: No such file or directory (2), apparently because some of the photos have been removed from the server, but I wasn't able to make Pidgin crash this way. Thus, there must be some different cause.

If you're able to reproduce the crash, could you please use gdb to capture the stack trace as described in our wiki? The original bug report above has a good stack trace, but no corresponding log. Having both from a single user could help us pinpoint what's happening.

tmuehlhoff commented 7 years ago

@xhaakon,

in fact I did only walk through the log in order to shorten it by time code, so it could indeed be another crash. In fact I think it crashed around 10:34 (I removed the stuff before in hour 9:xx). I restarted it on the same log file (append) so the snippet you quote probably was not a crash rather me Ctrl-C'ing the stuff in order to collect the log.

Since it has happened earlier, I will eventually be able to reproduce with gdb. /t.