sardemff7 / purple-events

libpurple events handling plugin and library
GNU General Public License v3.0
13 stars 3 forks source link

pidgin crashes when disabling logging #5

Open silberzwiebel opened 10 years ago

silberzwiebel commented 10 years ago

Procedure to reproduce, tested with pidgin 2.10.9, purple-events 0.2 on Sabayon with XMPP: 1) Add a MUC-chat. 2) Enter the chat. 3) Disable logging. 4) Quit Pidgin. 5) Pidgin crashes at startup. (Sometimes it already crashes at 3) or 4))

Crash does not appear when plugin purple-events is disabled. Thats the reason I file the bug here and not over at pidgin. All other plugins were disabled, backtrace is here:

#0  0x00007ffff47a6945 in malloc_consolidate () from /lib64/libc.so.6
No symbol table info available.
#1  0x00007ffff47a7be4 in _int_malloc () from /lib64/libc.so.6
No symbol table info available.
#2  0x00007ffff47aa8c4 in calloc () from /lib64/libc.so.6
No symbol table info available.
#3  0x00007ffff5044909 in g_malloc0 () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#4  0x00007ffff502d980 in ?? () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#5  0x00007ffff502dfca in ?? () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#6  0x00007ffff5d5af12 in purple_dbus_unregister_pointer (node=0xc9d560) at dbus-server.c:119
        id = 0x1a13
#7  0x00007ffff5d3ddfa in purple_status_destroy (status=0xc9d560) at status.c:602
No locals.
#8  0x00007ffff503b3fd in g_list_foreach () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#9  0x00007ffff5d3f6d2 in purple_presence_destroy (presence=0xc9c3d0) at status.c:1179
        __PRETTY_FUNCTION__ = "purple_presence_destroy"
#10 0x00007ffff5cf3376 in purple_buddy_destroy (buddy=0xc9c340) at blist.c:1412
        prpl = <optimized out>
        prpl_info = <optimized out>
#11 0x00007ffff5cf4bf9 in purple_blist_node_destroy (node=0xc9c210) at blist.c:2862
        ui_ops = 0x6f09e0 <blist_ui_ops>
        child = <optimized out>
        next_child = 0x0
#12 0x00007ffff5cf4bf9 in purple_blist_node_destroy (node=0xb52b80) at blist.c:2862
        ui_ops = 0x6f09e0 <blist_ui_ops>
        child = <optimized out>
        next_child = 0xc9dab0
#13 0x00007ffff5cf8d09 in purple_blist_uninit () at blist.c:3252
        node = 0x26808f0
        next_node = 0xcdb510
#14 0x00007ffff5d084da in purple_core_quit () at core.c:227
        ops = <optimized out>
        core = 0x7e83e0
        __PRETTY_FUNCTION__ = "purple_core_quit"
#15 0x00007ffff5532f60 in g_closure_invoke () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#16 0x00007ffff5545070 in ?? () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#17 0x00007ffff554ce66 in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#18 0x00007ffff554d072 in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#19 0x00007ffff6e8ce8c in gtk_widget_activate () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#20 0x00007ffff6d8830d in gtk_menu_shell_activate_item () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#21 0x00007ffff6d886ac in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#22 0x00007ffff6d756e9 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#23 0x00007ffff5532f60 in g_closure_invoke () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#24 0x00007ffff5544d5b in ?? () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#25 0x00007ffff554ca8f in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#26 0x00007ffff554d072 in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#27 0x00007ffff6e8dc5e in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#28 0x00007ffff6d73a54 in gtk_propagate_event () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#29 0x00007ffff6d73dbb in gtk_main_do_event () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#30 0x00007ffff69e359c in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
No symbol table info available.
#31 0x00007ffff503eb55 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#32 0x00007ffff503ee98 in ?? () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#33 0x00007ffff503f2fa in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#34 0x00007ffff6d72db7 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#35 0x0000000000434fd1 in main (argc=1, argv=0x7fffffffd588) at gtkmain.c:933
        opt_force_online = 0
        opt_help = <optimized out>
        opt_login = 0
        opt_nologin = 0
        opt_version = <optimized out>
        opt_si = 0
        opt_config_dir_arg = <optimized out>
        opt_login_arg = <optimized out>
        opt_session_arg = <optimized out>
        search_path = <optimized out>
        accounts = <optimized out>
        sig_indx = 1
        sigset = {__val = {82950, 0 <repeats 15 times>}}
        errmsg = "\020\000\000\000\000\000\000\000\362\373z\364\377\177\000\000\000\000\000\000\000\000\000\000\240ZQ\356\377\177\000\000\240\304\377\377\377\177\000\000\237u\244\360\377\177\000\000/usr/bin/pidgin", '\000' <repeats 633 times>...
        signal_channel = <optimized out>
        signal_status = <optimized out>
        signal_channel_watcher = 1
        segfault_message_tmp = <optimized out>
        error = 0x0
        opt = <optimized out>
        gui_check = <optimized out>
        debug_enabled = <optimized out>
        migration_failed = <optimized out>
        active_accounts = <optimized out>
        st = {st_dev = 4222451713, st_ino = 140737488340128, st_nlink = 140737488340128, st_mode = 4294952096, st_uid = 32767, st_gid = 4294952096, __pad0 = 32767, st_rdev = 140737488340143, st_size = 140737488344223, 
          st_blksize = 140737488340128, st_blocks = 140737488344223, st_atim = {tv_sec = 0, tv_nsec = 0}, st_mtim = {tv_sec = 0, tv_nsec = 0}, st_ctim = {tv_sec = 0, tv_nsec = 16}, __unused = {140737295088626, 140737298366464, 0}}
        long_options = {{name = 0x4d2d7c "config", has_arg = 1, flag = 0x0, val = 99}, {name = 0x4bd02e "debug", has_arg = 0, flag = 0x0, val = 100}, {name = 0x4ce163 "force-online", has_arg = 0, flag = 0x0, val = 102}, {
            name = 0x4c06df "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x4ce02a "login", has_arg = 2, flag = 0x0, val = 108}, {name = 0x4ce170 "multiple", has_arg = 0, flag = 0x0, val = 109}, {name = 0x4ce179 "nologin", 
            has_arg = 0, flag = 0x0, val = 110}, {name = 0x4d2d72 "session", has_arg = 1, flag = 0x0, val = 115}, {name = 0x4c43db "version", has_arg = 0, flag = 0x0, val = 118}, {name = 0x4d2d85 "display", has_arg = 1, flag = 0x0, 
            val = 68}, {name = 0x4cf666 "sync", has_arg = 0, flag = 0x0, val = 83}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
sardemff7 commented 10 years ago

Thanks for reporting, though I do not see anything purple-events related in your backtrace… Can you check with the Git version, especially the latest commit (9acc18d03c5d157d96a72228042cd446bc7a4ef5)?

silberzwiebel commented 10 years ago

I tried, but I failed in installing the plugin... Could you tell me, how to do it? This is what I did:

./autogen.sh
./configure
make

And now? How to install?

sardemff7 commented 10 years ago

If nothing failed at this point, something like sudo make install (or make install as root) should work.

silberzwiebel commented 10 years ago

Alright, this worked. Plugin version now says 0.3. Problem stil exists, and still only whith plugin enabled. Here is the backtrace with the 0.3 version (btw any way to attach textfiles here?):

GNU gdb (Gentoo 7.7 vanilla) 7.7
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from pidgin...Reading symbols from /usr/lib64/debug//usr/bin/pidgin.debug...done.
done.
[?1034h(gdb) handle SIGPIPE nostop noprint
Signal        Stop  Print   Pass to program Description
SIGPIPE       No    No  Yes     Broken pipe
(gdb) run
Starting program: /usr/bin/pidgin 
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
warning: File "/usr/lib64/gcc/x86_64-pc-linux-gnu/4.7.3/libstdc++.so.6.0.17-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
To enable execution of this file add
    add-auto-load-safe-path /usr/lib64/gcc/x86_64-pc-linux-gnu/4.7.3/libstdc++.so.6.0.17-gdb.py
line to your configuration file "/home/thomas/.gdbinit".
To completely disable this security protection add
    set auto-load safe-path /
line to your configuration file "/home/thomas/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
    info "(gdb)Auto-loading safe path"
[New Thread 0x7fffcd289700 (LWP 12733)]
[New Thread 0x7fffc7fff700 (LWP 12734)]
[New Thread 0x7fffc77fe700 (LWP 12735)]
[New Thread 0x7fffc6ffd700 (LWP 12736)]
[Thread 0x7fffc77fe700 (LWP 12735) exited]

Program received signal SIGSEGV, Segmentation fault.
0x0000000000460bc5 in pidgin_conv_has_focus (conv=0x279f740) at gtkconv.c:6340
6340    gtkconv.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt full
#0  0x0000000000460bc5 in pidgin_conv_has_focus (conv=0x279f740) at gtkconv.c:6340
        gtkconv = 0x279ca10
        win = 0x0
        has_focus = 32767
#1  0x00007fffd8f93a6e in purple_events_callback_conversation_updated (conv=0x279f740, type=<optimized out>, context=<optimized out>) at src/plugin/callbacks.c:196
No locals.
#2  0x00007ffff5d38d82 in purple_signal_emit_vargs (instance=<optimized out>, signal=0x7ffff5d8604a "conversation-updated", args=args@entry=0x7fffffffa958) at signals.c:482
        instance_data = <optimized out>
        signal_data = 0x87a9d0
        handler_data = <optimized out>
        l = <optimized out>
        l_next = 0xb44480
        tmp = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffaa30, reg_save_area = 0x7fffffffa970}}
        __PRETTY_FUNCTION__ = "purple_signal_emit_vargs"
#3  0x00007ffff5d38ed1 in purple_signal_emit (instance=<optimized out>, signal=<optimized out>) at signals.c:434
        args = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7fffffffaa30, reg_save_area = 0x7fffffffa970}}
        __PRETTY_FUNCTION__ = "purple_signal_emit"
#4  0x0000000000466e54 in private_gtkconv_new (conv=conv@entry=0x279f740, hidden=hidden@entry=0) at gtkconv.c:5425
        gtkconv = 0x279ca10
        conv_type = PURPLE_CONV_TYPE_CHAT
        pane = <optimized out>
        tab_cont = <optimized out>
        convnode = <optimized out>
        value = 0xd820f0
#5  0x0000000000466f5b in pidgin_conv_new (conv=0x279f740) at gtkconv.c:5470
No locals.
#6  0x00007ffff5d0706d in purple_conversation_new (type=type@entry=PURPLE_CONV_TYPE_CHAT, account=0x8ace50, name=name@entry=0x279f670 "test@conference.xaddy.de") at conversation.c:450
        conv = 0x279f740
        gc = 0x25e6540
        ops = <optimized out>
        hc = 0x279f6c0
        __PRETTY_FUNCTION__ = "purple_conversation_new"
#7  0x00007ffff5d37e08 in serv_got_joined_chat (gc=0x25e6540, id=2, name=0x279f670 "test@conference.xaddy.de") at server.c:853
        conv = <optimized out>
        chat = <optimized out>
        account = <optimized out>
        __PRETTY_FUNCTION__ = "serv_got_joined_chat"
#8  0x00007fffd91df464 in handle_presence_chat (packet=<optimized out>, presence=0x7fffffffac10, js=0x2616170) at presence.c:632
        room_jid = <optimized out>
        jid = 0x25b1d30 "kartoffelsalat@xaddy.de/0dd6779c-1264-4a4f-9f3c-7ea157708756"
        role = 0x279f460 "moderator"
        affiliation = 0x25b1ed0 "owner"
        is_our_resource = 1
        jbr = <optimized out>
        flags = (PURPLE_CBFLAGS_OP | PURPLE_CBFLAGS_FOUNDER)
        chat = 0x25b5610
        i = 3
#9  jabber_presence_parse (js=js@entry=0x2616170, packet=<optimized out>) at presence.c:1033
        type = <optimized out>
        jbr = 0x0
        signal_return = <optimized out>
        presence = {type = JABBER_PRESENCE_AVAILABLE, jid_from = 0x279f630, from = 0x279d5d0 "test@conference.xaddy.de/kartoffelsalat", to = 0x2644fd0 "kartoffelsalat@xaddy.de/0dd6779c-1264-4a4f-9f3c-7ea157708756", id = 0x0, 
          jb = 0x279f520, chat = 0x25b5610, chat_info = {codes = 0x279b230, item = 0x25b1ca0}, caps = 0xb95760, state = JABBER_BUDDY_STATE_ONLINE, status = 0x0, priority = 1, vcard_avatar_hash = 0x0, nickname = 0x0, delayed = 0, 
          sent = 1393410629, idle = 0}
        child = <optimized out>
        __PRETTY_FUNCTION__ = "jabber_presence_parse"
#10 0x00007fffd91d004b in jabber_process_packet (js=js@entry=0x2616170, packet=packet@entry=0x7fffffffad28) at jabber.c:347
        name = 0x279b300 "presence"
        xmlns = 0x279eaa0 "jabber:client"
#11 0x00007fffd91dcd57 in jabber_parser_element_end_libxml (user_data=0x2616170, element_name=<optimized out>, prefix=<optimized out>, namespace=<optimized out>) at parser.c:169
        packet = 0xb95600
        js = 0x2616170
#12 0x00007ffff0031493 in ?? () from /usr/lib64/libxml2.so.2
No symbol table info available.
#13 0x00007ffff00384bc in ?? () from /usr/lib64/libxml2.so.2
No symbol table info available.
#14 0x00007ffff0039f3f in xmlParseChunk () from /usr/lib64/libxml2.so.2
No symbol table info available.
#15 0x00007fffd91dd1fd in jabber_parser_process (js=0x2616170, buf=<optimized out>, len=<optimized out>) at parser.c:279
        ret = <optimized out>
#16 0x00007fffd91cbd0e in jabber_recv_cb_ssl (data=0x25e6540, gsc=0xb9ad10, cond=<optimized out>) at jabber.c:659
        gc = 0x25e6540
        js = 0x2616170
        len = 489
        buf = "<presence to='kartoffelsalat@xaddy.de/0dd6779c-1264-4a4f-9f3c-7ea157708756' from='test@conference.xaddy.de/kartoffelsalat'><priority>1</priority><c hash='sha-1' ext='voice-v1 camera-v1 video-v1' ver='"...
        __PRETTY_FUNCTION__ = "jabber_recv_cb_ssl"
#17 0x000000000046e43d in pidgin_io_invoke (source=<optimized out>, condition=<optimized out>, data=0x86e110) at gtkeventloop.c:73
        closure = 0x86e110
        purple_cond = PURPLE_INPUT_READ
#18 0x00007ffff503eb55 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#19 0x00007ffff503ee98 in ?? () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#20 0x00007ffff503f2fa in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#21 0x00007ffff6d72db7 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#22 0x0000000000434fd1 in main (argc=1, argv=0x7fffffffd568) at gtkmain.c:933
        opt_force_online = 0
        opt_help = <optimized out>
        opt_login = 0
        opt_nologin = 0
        opt_version = <optimized out>
        opt_si = 0
        opt_config_dir_arg = <optimized out>
        opt_login_arg = <optimized out>
        opt_session_arg = <optimized out>
        search_path = <optimized out>
        accounts = <optimized out>
        sig_indx = 1
        sigset = {__val = {82950, 0 <repeats 15 times>}}
        errmsg = "\020\000\000\000\000\000\000\000\362\373z\364\377\177\000\000\000\000\000\000\000\000\000\000\240ZQ\356\377\177\000\000\200\304\377\377\377\177\000\000\237u\244\360\377\177\000\000/usr/bin/pidgin", '\000' <repeats 633 times>...
        signal_channel = <optimized out>
        signal_status = <optimized out>
        signal_channel_watcher = 1
        segfault_message_tmp = <optimized out>
        error = 0x0
        opt = <optimized out>
        gui_check = <optimized out>
        debug_enabled = <optimized out>
        migration_failed = <optimized out>
        active_accounts = <optimized out>
        st = {st_dev = 4222451713, st_ino = 140737488340096, st_nlink = 140737488340096, st_mode = 4294952064, st_uid = 32767, st_gid = 4294952064, __pad0 = 32767, st_rdev = 140737488340111, st_size = 140737488344191, 
          st_blksize = 140737488340096, st_blocks = 140737488344191, st_atim = {tv_sec = 0, tv_nsec = 0}, st_mtim = {tv_sec = 0, tv_nsec = 0}, st_ctim = {tv_sec = 0, tv_nsec = 16}, __unused = {140737295088626, 140737298366464, 0}}
        long_options = {{name = 0x4d2d7c "config", has_arg = 1, flag = 0x0, val = 99}, {name = 0x4bd02e "debug", has_arg = 0, flag = 0x0, val = 100}, {name = 0x4ce163 "force-online", has_arg = 0, flag = 0x0, val = 102}, {
            name = 0x4c06df "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x4ce02a "login", has_arg = 2, flag = 0x0, val = 108}, {name = 0x4ce170 "multiple", has_arg = 0, flag = 0x0, val = 109}, {name = 0x4ce179 "nologin", 
            has_arg = 0, flag = 0x0, val = 110}, {name = 0x4d2d72 "session", has_arg = 1, flag = 0x0, val = 115}, {name = 0x4c43db "version", has_arg = 0, flag = 0x0, val = 118}, {name = 0x4d2d85 "display", has_arg = 1, flag = 0x0, 
            val = 68}, {name = 0x4cf666 "sync", has_arg = 0, flag = 0x0, val = 83}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
(gdb) quit
A debugging session is active.

    Inferior 1 [process 12709] will be killed.

Quit anyway? (y or n) 
sardemff7 commented 10 years ago

In gdb, try print ((PidginConversation *)conv)->win, if it is NULL, please file at Pidgin, since they should check that in their code. If it is not, I have no idea what that might be. :-)

silberzwiebel commented 10 years ago

Sorry, it's not NULL:

(gdb) print ((PidginConversation *)conv)->win
$1 = (PidginWindow *) 0x27bdb20

I used the command after the crash, this was correct, no?

sardemff7 commented 10 years ago

Sure… The line that fails (unless you are using patched source) is:

g_object_get(G_OBJECT(win->window), "has-toplevel-focus", &has_focus, NULL);

Maybe print *((PidginConversation *)conv)->win, since ->window could be NULL too…

silberzwiebel commented 10 years ago

Nope:

(gdb) print *((PidginConversation *)conv)->win
$1 = {window = 0x74736574, notebook = 0x264c1c0, gtkconvs = 0x0, menu = {menubar = 0x51, view_log = 0x0, send_file = 0x0, add_pounce = 0x0, get_info = 0x0, invite = 0x0, alias = 0x0, block = 0x0, unblock = 0x0, add = 0x0, remove = 0x51, 
    insert_link = 0x0, insert_image = 0x0, logging = 0x0, sounds = 0x0, show_formatting_toolbar = 0x0, show_timestamps = 0x0, show_icon = 0x0, send_to = 0x0, tray = 0x0, typing_icon = 0x21, item_factory = 0x6e6967646950}, dialogs = {
    search = 0x7efe48}, in_drag = 8322776, in_predrag = 0, drag_tab = 33, drag_min_x = 0, drag_max_x = 40766816, drag_min_y = 0, drag_max_y = 17190224, drag_motion_signal = 0, drag_leave_signal = 39952832, audio_call = 0x21, 
  video_call = 0x264c200, audio_video_call = 0x7400000073}
sardemff7 commented 10 years ago

I give up! In your stack, there is win = 0x0 so it may be some kind of race… I do not have any more idea. You should file a bug at Pidgin’s. I will leave this one opened for now.

silberzwiebel commented 10 years ago

Done: https://developer.pidgin.im/ticket/16058

sardemff7 commented 9 years ago

Is is still crashing?

silberzwiebel commented 8 years ago

Sorry for my late reply. Indeed, yes, pidgin still crashes. I'm not using Pidgin since some time anymore, but followed the steps I wrote at the beginning of this issue and Pidgin crashed. I'm now at Fedora 23, with Pidgin 2.10.11 and your plugin version 0.99.1. Pidgin does not crash with purple-events disabled.

This is the backtrace I get:

#0  0x00005555555bb795 in pidgin_conv_has_focus ()
#1  0x00007fffd7e001d6 in purple_events_callback_conversation_updated (conv=0x55555692ee70, type=<optimized out>, context=<optimized out>) at src/plugin/callbacks.c:196
#2  0x00007ffff4e0df40 in purple_signal_emit_vargs () at /lib64/libpurple.so.0
#3  0x00007ffff4e0e09e in purple_signal_emit () at /lib64/libpurple.so.0
#4  0x00005555555c0443 in private_gtkconv_new ()
#5  0x00005555555c04cb in pidgin_conv_new ()
#6  0x00007ffff4dda795 in purple_conversation_new () at /lib64/libpurple.so.0
#7  0x00007ffff4e0cfb6 in serv_got_joined_chat () at /lib64/libpurple.so.0
#8  0x00007fffdb5e8ad1 in jabber_presence_parse () at /usr/lib64/purple-2/libjabber.so.0
#9  0x00007fffdb5d9b2b in jabber_process_packet () at /usr/lib64/purple-2/libjabber.so.0
#10 0x00007fffdb5e6644 in jabber_parser_element_end_libxml () at /usr/lib64/purple-2/libjabber.so.0
#11 0x00007ffff41dae13 in xmlParseEndTag2 () at /lib64/libxml2.so.2
#12 0x00007ffff41e099f in xmlParseTryOrFinish () at /lib64/libxml2.so.2
#13 0x00007ffff41e24bb in xmlParseChunk () at /lib64/libxml2.so.2
#14 0x00007fffdb5e6afd in jabber_parser_process () at /usr/lib64/purple-2/libjabber.so.0
#15 0x00007fffdb5d5d6b in jabber_recv_cb_ssl () at /usr/lib64/purple-2/libjabber.so.0
#16 0x00005555555c969e in pidgin_io_invoke ()
#17 0x00007ffff3025e3a in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#18 0x00007ffff30261d0 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#19 0x00007ffff30264f2 in g_main_loop_run () at /lib64/libglib-2.0.so.0
#20 0x00007ffff6b12f37 in gtk_main () at /lib64/libgtk-x11-2.0.so.0
#21 0x000055555558fdf7 in main ()

I hope this is informative enough, otherwise I might be able to build debug versions. But maybe I would need help with this.