Bug 35120 - Gabble crashes when joining a restricted chatroom
Summary: Gabble crashes when joining a restricted chatroom
Status: RESOLVED FIXED
Alias: None
Product: Telepathy
Classification: Unclassified
Component: gabble (show other bugs)
Version: 0.11
Hardware: Other All
: medium normal
Assignee: Telepathy bugs list
QA Contact: Telepathy bugs list
URL: http://cgit.collabora.co.uk/git/user/...
Whiteboard: review le plus
Keywords: patch
Depends on:
Blocks: 35619
  Show dependency treegraph
 
Reported: 2011-03-08 10:21 UTC by Alban Crequy
Modified: 2011-04-20 08:03 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Alban Crequy 2011-03-08 10:21:27 UTC
ii  telepathy-gabble     0.11.7-1
ii  libtelepathy-glib0   0.13.15-1

When a join a specific XMPP chatroom with Empathy on a different server than mine, Gabble crashes. The stack contains "WOCKY_XMPP_ERROR_FORBIDDEN" so I assume the MUC server didn't accept me.


Program received signal SIGABRT, Aborted.
0xb77be424 in __kernel_vsyscall ()
(gdb) bt
#0  0xb77be424 in __kernel_vsyscall ()
#1  0xb6f89751 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0xb6f8cb82 in abort () at abort.c:92
#3  0xb70f0a6e in g_logv (log_domain=0xb7475bde "tp-glib", 
    log_level=G_LOG_LEVEL_CRITICAL, 
    format=0xb7138d4c "%s: assertion `%s' failed", 
    args1=0xbf9c368c "\265\\I\267\177[I\267\020\"}\267p\255\236\t`\f\017\267\336[G\267<\340J\267\330\066\234\277\214LC\267\336[G\267\265\\I\267\177[I\267<\340J\267عZ\tX\354Y\t\370\066\234\277<\340J\267\070\272Z\tعZ\t\370\066\234\277d7C\267")
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./glib/gmessages.c:557
#4  0xb70f0aa2 in g_log (log_domain=0xb7475bde "tp-glib", 
    log_level=G_LOG_LEVEL_CRITICAL, 
    format=0xb7138d4c "%s: assertion `%s' failed")
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./glib/gmessages.c:577
#5  0xb70f0c9d in g_return_if_fail_warning (log_domain=0xb7475bde "tp-glib", 
    pretty_function=0xb7495cb5 "tp_intset_to_array", 
    expression=0xb7495b7f "set != NULL")
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./glib/gmessages.c:586
#6  0xb7434c8c in tp_intset_to_array (set=0x0) at intset.c:425
#7  0xb7433764 in tp_handle_set_to_array (set=0xb1f2e550) at handle-set.c:316
#8  0x080d610e in close_channel (chan=0x95ab9d8, reason=<value optimized out>, 
    inform_muc=0, actor=0, reason_code=5) at muc-channel.c:1459
#9  0x080dbc8d in handle_error (source=0x9bbc4a0, stanza=0x9dac540, 
    errnum=WOCKY_XMPP_ERROR_FORBIDDEN, 
    message=0x9c8d880 "Access denied by service policy", data=0x95ab9d8)
    at muc-channel.c:1904
#10 0x08095736 in _wocky_signals_marshal_VOID__OBJECT_ENUM_STRING (
    closure=0x9c242e8, return_value=0x0, n_param_values=4, 
    param_values=0x9e040a8, invocation_hint=0xbf9c3930, marshal_data=0x80dba50)
    at wocky-signals-marshal.c:251
#11 0xb719cb52 in g_closure_invoke (closure=0x9c242e8, return_value=0x0, 
    n_param_values=4, param_values=0x9e040a8, invocation_hint=0xbf9c3930)
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./gobject/gclosure.c:767
#12 0xb71b52ad in signal_emit_unlocked_R (node=<value optimized out>, 
    detail=<value optimized out>, instance=0x9bbc4a0, emission_return=0x0, 
    instance_and_params=0x9e040a8)
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./gobject/gsignal.c:3252
#13 0xb71b688c in g_signal_emit_valist (instance=0x9bbc4a0, signal_id=101, 
    detail=0, var_args=0xbf9c3b08 "\035")
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./gobject/gsignal.c:2983
#14 0xb71b6d12 in g_signal_emit (instance=0x9bbc4a0, signal_id=101, detail=0)
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./gobject/gsignal.c:3040
#15 0x08107d1e in handle_presence_error (porter=0x95a34b8, stanza=0x9dac540, 
    data=0x9bbc4a0) at wocky-muc.c:1308
#16 handle_presence (porter=0x95a34b8, stanza=0x9dac540, data=0x9bbc4a0)
    at wocky-muc.c:1345
#17 0x080924d9 in handle_stanza (source=0x97cf538, res=0x9ee8478, 
    user_data=0x95a34b8) at wocky-porter.c:1061
#18 stanza_received_cb (source=0x97cf538, res=0x9ee8478, user_data=0x95a34b8)
    at wocky-porter.c:1256
#19 0xb725cb49 in g_simple_async_result_complete (simple=0x9ee8478)
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./gio/gsimpleasyncresult.c:747
#20 0x08098265 in _xmpp_connection_received_data (source=0x95f1ec0, 
    result=0x9e66270, user_data=0x97cf538) at wocky-xmpp-connection.c:561
#21 0xb724b64f in async_ready_callback_wrapper (source_object=0x95f1ec0, 
    res=0x9e66270, user_data=0x97cf538)
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./gio/ginputstream.c:470
#22 0xb725cb49 in g_simple_async_result_complete (simple=0x9e66270)
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./gio/gsimpleasyncresult.c:747
#23 0x08100dff in wocky_tls_job_result_gssize (job=<value optimized out>, 
    result=467) at wocky-tls.c:359
#24 0xb724b64f in async_ready_callback_wrapper (source_object=0x95c9168, 
    res=0x9db2c40, user_data=0x962a810)
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./gio/ginputstream.c:470
#25 0xb725cb49 in g_simple_async_result_complete (simple=0x9db2c40)
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./gio/gsimpleasyncresult.c:747
#26 0xb7265dcb in g_socket_input_stream_read_ready (socket=0x95f7a70, 
    condition=G_IO_IN, stream=0x95c9168)
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./gio/gsocketinputstream.c:155
#27 0xb725de24 in socket_source_dispatch (source=0x9d3ffa0, 
    callback=0xb7265d00 <g_socket_input_stream_read_ready>, 
    user_data=0x95c9168)
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./gio/gsocket.c:2475
#28 0xb70e5755 in g_main_dispatch (context=0x959d018)
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./glib/gmain.c:2440
#29 g_main_context_dispatch (context=0x959d018)
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./glib/gmain.c:3013
#30 0xb70e9d08 in g_main_context_iterate (context=0x959d018, 
    block=<value optimized out>, dispatch=1, self=0x9591028)
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./glib/gmain.c:3091
#31 0xb70ea247 in g_main_loop_run (loop=0x95a1698)
    at /build/buildd-glib2.0_2.28.1-1+b1-i386-z4vqEK/glib2.0-2.28.1/./glib/gmain.c:3299
#32 0xb745197f in tp_run_connection_manager (
    prog_name=0x814fbb8 "telepathy-gabble", version=0x81625b0 "0.11.7", 
    construct_cm=0x8072a30 <construct_cm>, argc=1, argv=0xbf9c4084)
    at run.c:285
#33 0x080729d1 in gabble_main (argc=1, argv=0xbf9c4084) at gabble.c:175
#34 0x08072870 in main (argc=1, argv=0xbf9c4084) at main.c:28
(gdb) 
(gdb) c
Continuing.

Program terminated with signal SIGABRT, Aborted.
The program no longer exists.
(gdb)
Comment 1 Alban Crequy 2011-03-09 03:59:57 UTC
Here is the gabble log when I join the chatroom from :


gabble/roomlist-DEBUG: 09/03/11 11:51:08.188913: gabble_roomlist_channel_close (roomlist-channel.c:486): called on 0x90414b8
gabble/muc-DEBUG: 09/03/11 11:51:08.209088: new_muc_channel (muc-factory.c:487): creating new chan, object path /org/freedesktop/Telepathy/Connection/gabble/jabber/XXXXX/MucChannel1
gabble/presence-DEBUG: 09/03/11 11:51:08.211572: gabble_presence_cache_do_update (presence-cache.c:1996): chatroom@mucserver/myjid (198) resource <null> prio 0 presence 7 message "<null>"
gabble/presence-DEBUG: 09/03/11 11:51:08.211880: emit_capabilities_update (presence-cache.c:1097): no change in caps for handle 198
wocky-DEBUG: 09/03/11 11:51:08.213077: _write_node_tree: Serializing tree:
* presence xmlns='jabber:client' from='myjid/resource' to='chatroom@mucserver/myjid'
    * x xmlns='vcard-temp:x:update'
        * photo
            "03ab25466782fa6dc29dd6cad1a1a10f37b77b52"
    * x xmlns='http://jabber.org/protocol/muc'
gabble/muc-DEBUG: 09/03/11 11:51:08.214536: channel_state_changed (muc-channel.c:1347): state changed from MUC_STATE_CREATED to MUC_STATE_INITIATED
wocky-DEBUG: 09/03/11 11:51:15.148288: _end_element_ns: Received stanza
* presence xmlns='jabber:client' from='chatroom@mucserver/myjid' to='myjid/resource' type='error'
    * x xmlns='vcard-temp:x:update'
        * photo
            "03ab25466782fa6dc29dd6cad1a1a10f37b77b52"
    * x xmlns='http://jabber.org/protocol/muc'
    * error code='403' type='auth'
        * forbidden xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'
        * text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'
            "Access denied by service policy"
gabble/muc-DEBUG: 09/03/11 11:51:15.153001: muc_join_error_cb (muc-factory.c:362): error->code=7, error->message="banned from room"
gabble/muc-DEBUG: 09/03/11 11:51:15.162214: close_channel (muc-channel.c:1412): Closing
gabble/muc-DEBUG: 09/03/11 11:51:15.163058: muc_call_channel_finish_requests (muc-channel.c:3754): Failed to create call channel: Muc channel closed below us
gabble/muc-DEBUG: 09/03/11 11:51:15.174245: muc_channel_closed_cb (muc-factory.c:255): removing MUC channel with handle 1
gabble/muc-DEBUG: 09/03/11 11:51:15.174927: gabble_muc_channel_dispose (muc-channel.c:1171): called
gabble/muc-DEBUG: 09/03/11 11:51:15.175522: gabble_muc_channel_finalize (muc-channel.c:1192): called
tp-glib-CRITICAL: 09/03/11 11:51:15.176259: tp_intset_to_array: assertion `set != NULL' failed
Comment 2 Will Thompson 2011-03-18 17:12:34 UTC
Yum! Here's a fix.
Comment 4 Alban Crequy 2011-04-20 08:03:06 UTC
The same bug has been reported with a different scenario here:

https://bugs.meego.com/show_bug.cgi?id=9615


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.