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

SEGV - backtrace #141

Closed joakim-tjernlund closed 7 years ago

joakim-tjernlund commented 7 years ago

Tried to share my screen in a "room", got this:

Thread 1 "pidgin" received signal SIGSEGV, Segmentation fault.
0x00007ffff78ae910 in g_str_hash () from /usr/lib64/libglib-2.0.so.0
(gdb) bt
#0  0x00007ffff78ae910 in g_str_hash () from /usr/lib64/libglib-2.0.so.0
#1  0x00007ffff78ad7fb in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007ffff5201765 in ?? () from /usr/lib64/libpurple.so.0
#3  0x00007ffff5207335 in purple_media_add_stream () from /usr/lib64/libpurple.so.0
#4  0x00007fffe169e57b in sipe_backend_media_add_stream () from /usr/lib64/purple-2/libsipe.so
#5  0x00007fffe1690fb4 in sipe_media_stream_add () from /usr/lib64/purple-2/libsipe.so
#6  0x00007fffe1695087 in ?? () from /usr/lib64/purple-2/libsipe.so
#7  0x00007fffe1688c58 in sipe_core_user_ask_choice_cb () from /usr/lib64/purple-2/libsipe.so
#8  0x00000000004970b0 in ?? ()
#9  0x00007ffff7b96204 in ?? () from /usr/lib64/libgobject-2.0.so.0
#10 0x00007ffff7bb06c7 in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0
#11 0x00007ffff7bb103f in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
#12 0x00007ffff61d5fc5 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#13 0x00007ffff7b95fd5 in g_closure_invoke () from /usr/lib64/libgobject-2.0.so.0
#14 0x00007ffff7ba7c64 in ?? () from /usr/lib64/libgobject-2.0.so.0
#15 0x00007ffff7bb0dd9 in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0
#16 0x00007ffff7bb103f in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
#17 0x00007ffff61d4eb9 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#18 0x00007ffff627a21f in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#19 0x00007ffff7b95fd5 in g_closure_invoke () from /usr/lib64/libgobject-2.0.so.0
#20 0x00007ffff7ba823a in ?? () from /usr/lib64/libgobject-2.0.so.0
#21 0x00007ffff7bb08c5 in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0
#22 0x00007ffff7bb103f in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
#23 0x00007ffff639148c in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#24 0x00007ffff6278964 in gtk_propagate_event () from /usr/lib64/libgtk-x11-2.0.so.0
#25 0x00007ffff6278dfb in gtk_main_do_event () from /usr/lib64/libgtk-x11-2.0.so.0
#26 0x00007ffff5eef30c in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
#27 0x00007ffff78bef7d in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#28 0x00007ffff78bf260 in ?? () from /usr/lib64/libglib-2.0.so.0
#29 0x00007ffff78bf582 in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
#30 0x00007ffff6277d77 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
#31 0x0000000000431b84 in main ()
joakim-tjernlund commented 7 years ago

Now with symbols(this happens in the lp-rebase branch as well):


Thread 1 "pidgin" received signal SIGSEGV, Segmentation fault.
0x00007ffff51c2910 in g_str_hash () from /usr/lib64/libglib-2.0.so.0
(gdb) bt full
#0  0x00007ffff51c2910 in g_str_hash () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#1  0x00007ffff51c17fb in ?? () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#2  0x00007ffff5cd8765 in create_participant (name=0x0, self=0x15b21b0) at media/backend-fs2.c:1976
        priv = 0x15b2160
        participant = <optimized out>
        err = 0x0
#3  purple_media_backend_fs2_add_stream (self=<optimized out>, sess_id=<optimized out>, who=0x0, type=PURPLE_MEDIA_APPLICATION, initiator=0x1, transmitter=<optimized out>, num_params=0x7, params=0x15f7e70) at media/backend-fs2.c:2337
        backend = 0x15b21b0
        priv = <optimized out>
        stream = <optimized out>
#4  0x00007ffff5cde335 in purple_media_add_stream (media=0x13453a0, sess_id=0x135a6a0 "applicationsharing", who=0x0, type=PURPLE_MEDIA_APPLICATION, initiator=initiator@entry=0x1, transmitter=transmitter@entry=0x7fffe16a9894 "nice", 
    num_params=0x7, params=0x15f7e70) at media.c:1081
        session = <optimized out>
        __FUNCTION__ = "purple_media_add_stream"
#5  0x00007fffe169047b in sipe_backend_media_add_stream (stream=stream@entry=0x152f6e0, type=type@entry=SIPE_MEDIA_APPLICATION, ice_version=ice_version@entry=SIPE_ICE_RFC_5245, initiator=initiator@entry=0x1, 
    media_relays=media_relays@entry=0xbc3820, min_port=min_port@entry=0xa410, max_port=0xa423) at purple-media.c:915
        media = 0x15a9fe0
        backend_stream = 0x148bc00
        pipe = <optimized out>
        params = 0x15f7e70
        params_cnt = 0x7
        transmitter = 0x7fffe16a9894 "nice"
        relay_info = 0x15f7ed8
        callbacks = {readable = 0x7fffe168fc50 <stream_readable_cb>, writable = 0x7fffe168fda0 <stream_writable_cb>}
#6  0x00007fffe1682c14 in sipe_media_stream_add (call=call@entry=0x9b3f20, id=id@entry=0x7fffe169bb30 "applicationsharing", type=type@entry=SIPE_MEDIA_APPLICATION, ice_version=ice_version@entry=SIPE_ICE_RFC_5245, 
    initiator=initiator@entry=0x1, ssrc_count=ssrc_count@entry=0x0) at sipe-media.c:1275
        sipe_private = 0x142be40
        stream_private = 0x152f6e0
        backend_media_relays = 0xbc3820
        min_port = 0xa410
        max_port = 0xa423
#7  0x00007fffe1686fdd in connect_conference (sipe_private=0x142be40, chat_session=<optimized out>) at sipe-appshare.c:630
        call = 0x9b3f20
        stream = <optimized out>
        uri = 0x0
#8  0x00007ffff54a9fd5 in g_closure_invoke () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#9  0x00007ffff54bc341 in ?? () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#10 0x00007ffff54c4dd9 in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#11 0x00007ffff54c503f in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#12 0x00007ffff6e67216 in gtk_widget_activate () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#13 0x00007ffff6d6315d in gtk_menu_shell_activate_item () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#14 0x00007ffff6d634fb in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#15 0x00007ffff6d5121f in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#16 0x00007ffff54a9fd5 in g_closure_invoke () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#17 0x00007ffff54bc23a in ?? () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#18 0x00007ffff54c48c5 in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#19 0x00007ffff54c503f in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
No symbol table info available.
#20 0x00007ffff6e6848c in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#21 0x00007ffff6d4f964 in gtk_propagate_event () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#22 0x00007ffff6d4fdfb in gtk_main_do_event () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#23 0x00007ffff69c630c in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
No symbol table info available.
#24 0x00007ffff51d2f7d in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
No symbol table info available.
#25 0x00007ffff51d3260 in ?? () from /usr/lib64/libglib-2.0.so.0
xhaakon commented 7 years ago

Pidgin crashes because participant's name is NULL, and this goes all the way down to connect_conference() where the name is built from chat session ID.

We'll need to have a look at what your chat ID actually is. Please update to current lp-rebase (which branch I assume you're using now) and keep Pidgin running with logging enabled. When the crash happens again, please post the log lines which contain the following strings:

sipe: Building conference URI for focus
sipe: Conference URI is
joakim-tjernlund commented 7 years ago

MESSAGE END <<<<<<<<<< HTTP - 2017-03-02T18:54:23.372143Z
(19:54:24) GLib: Source ID 3088 was not found when attempting to remove it
(19:54:25) roomlist: unreffing list, ref count now 0
(19:54:25) roomlist: destroying list 0x2cb9e40
(19:54:26) sipe: sipe_purple_chat_menu: 0x2d7d3d0
(19:54:26) sipe: Building conference URI for focus ma-chan://infinera.com/5d162160-bf47-40b3-ad5a-e496c16f7fb7
(19:54:26) sipe: Conference URI is NULL
(19:54:26) util: Writing file prefs.xml to directory /home/jocke/.purple
(19:54:26) util: Writing file /home/jocke/.purple/prefs.xml
(19:54:31) sipe: Building conference URI for focus ma-chan://infinera.com/5d162160-bf47-40b3-ad5a-e496c16f7fb7
(19:54:31) sipe: Conference URI is NULL
(19:54:31) sipe: Building conference URI for focus ma-chan://infinera.com/5d162160-bf47-40b3-ad5a-e496c16f7fb7
(19:54:31) sipe: Conference URI is NULL
(19:54:33) sipe: sipe_session_add_call: new session for (null)
(19:54:33) mediamanager: Couldn't read fs-element.conf: No such file or directory
(19:54:33) backend-fs2: Creating hash table for sessions
(19:54:33) backend-fs2: connecting pad: success
(19:54:33) backend-fs2: create_src: setting source state to GST_STATE_PLAYING - it may hang here on win32
(19:54:33) backend-fs2: create_src: state set
(19:54:33) backend-fs2: Creating hash table for participants
joakim-tjernlund commented 7 years ago

Note that this is not a normal session, I connected to a "Room" and just tried to share my session to the whole "Room"

xhaakon commented 7 years ago

ma-chan://infinera.com/5d162160-bf47-40b3-ad5a-e496c16f7fb7

This is a "Persistent Chat"? I never supported media in this kind of conference in Sipe and apparently desktop sharing with a chat room isn't possible even with proprietary Lync clients:

https://social.technet.microsoft.com/Forums/lync/en-US/20eb6dad-3c46-4efc-9015-ccfffac430e6/desktop-sharing-ability-in-persistent-chat?forum=lyncpersistentchat

It seems the only "fix" I can provide is to disable the sharing options in Conversation menu for persistent chats.

joakim-tjernlund commented 7 years ago

That is fine, I was just testing Share all over and noticed this SEGV, if its not possible, just disable sharing here.

xhaakon commented 7 years ago

Could you please update your lp-rebase and check that the options to join a call and presentation no longer appear in Conversation menu of group chats, but are still present in regular conferences? (Our company doesn't use chat rooms so I don't have a way to test this myself.)

Btw. what do you see when you select "Meeting entry info" from the menu? I guess those information don't make sense in the context of group chats either, and the option should therefore be removed as well.

xhaakon commented 7 years ago

There's been no further reply from the reporter for a while, so I assume this matter has been dealt with. I'm upstreaming the commits in question (including disabling "Meeting entry info" in group chats) and closing the ticket.

joakim-tjernlund commented 7 years ago

ohh, I figured I reported this already. It works fine, no issues ATM.