Bug 42706 - Crash when a Ytstenut service is running when Gabble signs in.
Summary: Crash when a Ytstenut service is running when Gabble signs in.
Status: RESOLVED FIXED
Alias: None
Product: Telepathy
Classification: Unclassified
Component: gabble (show other bugs)
Version: git master
Hardware: Other All
: medium normal
Assignee: Telepathy bugs list
QA Contact: Telepathy bugs list
URL: http://cgit.freedesktop.org/~jonny/te...
Whiteboard: review+
Keywords: patch
Depends on:
Blocks:
 
Reported: 2011-11-08 07:14 UTC by Will Thompson
Modified: 2011-11-09 02:07 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Will Thompson 2011-11-08 07:14:39 UTC
Steps to reproduce:
• Have a Gabble connection online with the Ytstenut plugin;
• Start two Ytstenut services (say, server-client-pong twice);
• Set your status to offline;
• Set your status back online.

(telepathy-gabble:22633): gabble-DEBUG: gabble_connection_update_capabilities (connection.c:3491): client org.freedesktop.Telepathy.Client.Vinagre has no interesting data forms
(telepathy-gabble:22633): gabble-DEBUG: gabble_media_factory_add_caps (media-factory.c:1016): Client org.freedesktop.Telepathy.Client.Ytsenut.Client.lit.sp.hidere._3a1_2e5055.n0 media capabilities:
(telepathy-gabble:22633): wocky-DEBUG: data_form_parse_form_field: wocky-data-form.c:543: parsed field 'FORM_TYPE' of type hidden
(telepathy-gabble:22633): wocky-DEBUG: data_form_parse_form_field: wocky-data-form.c:543: parsed field 'type' of type text-single
(telepathy-gabble:22633): gabble-DEBUG: gabble_connection_update_capabilities (connection.c:3460): client org.freedesktop.Telepathy.Client.Ytsenut.Client.lit.sp.hidere._3a1_2e5055.n0 contributes:
  --begin--
  Feature: urn:ytstenut:service#lit.sp.hidere
  --end--

(telepathy-gabble:22633): gabble-DEBUG: gabble_connection_update_capabilities (connection.c:3481): client org.freedesktop.Telepathy.Client.Ytsenut.Client.lit.sp.hidere._3a1_2e5055.n0 contributes 1 data form:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff55a5ed8 in main_arena () from /lib/x86_64-linux-gnu/libc.so.6

#0  0x00007ffff55a5ed8 in main_arena () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff55df6f3 in g_hash_table_lookup_node (hash_return=<synthetic pointer>, key=0x520eab, hash_table=0x7ffff55a5eb8)
    at /build/buildd-glib2.0_2.30.1-2-amd64-0upKKE/glib2.0-2.30.1/./glib/ghash.c:360
#2  g_hash_table_lookup (hash_table=0x7ffff55a5eb8, key=0x520eab)
    at /build/buildd-glib2.0_2.30.1-2-amd64-0upKKE/glib2.0-2.30.1/./glib/ghash.c:1022
#3  0x000000000047da24 in get_form_type (form=<optimized out>) at connection.c:3264
#4  0x000000000047e867 in gabble_connection_update_capabilities (iface=<optimized out>, clients=0x15db760, context=0x160b220)
    at connection.c:3484
#5  0x00007ffff79c24a8 in invoke_object_method (message=0x159cc70, connection=0x79d1b0, method=0x7ffff6ca3c20, 
    object_info=0x7ffff6ca20e0, object=0x7ce160) at dbus-gobject.c:1889
#6  object_registration_message (connection=0x79d1b0, message=0x159cc70, user_data=<optimized out>) at dbus-gobject.c:2151
#7  0x00007ffff778d3c1 in ?? () from /lib/x86_64-linux-gnu/libdbus-1.so.3
#8  0x00007ffff777f2c0 in dbus_connection_dispatch () from /lib/x86_64-linux-gnu/libdbus-1.so.3
#9  0x00007ffff79bf735 in message_queue_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>)
    at dbus-gmain.c:90
#10 0x00007ffff55f11ad in g_main_dispatch (context=0x7a0020)
    at /build/buildd-glib2.0_2.30.1-2-amd64-0upKKE/glib2.0-2.30.1/./glib/gmain.c:2425
#11 g_main_context_dispatch (context=0x7a0020) at /build/buildd-glib2.0_2.30.1-2-amd64-0upKKE/glib2.0-2.30.1/./glib/gmain.c:2995
#12 0x00007ffff55f19a8 in g_main_context_iterate (context=0x7a0020, block=<optimized out>, dispatch=1, self=<optimized out>)
    at /build/buildd-glib2.0_2.30.1-2-amd64-0upKKE/glib2.0-2.30.1/./glib/gmain.c:3073
#13 0x00007ffff55f1ee2 in g_main_loop_run (loop=0x7a6110)
    at /build/buildd-glib2.0_2.30.1-2-amd64-0upKKE/glib2.0-2.30.1/./glib/gmain.c:3281
#14 0x00007ffff6a0226f in tp_run_connection_manager (prog_name=<optimized out>, version=<optimized out>, construct_cm=<optimized out>, 
    argc=<optimized out>, argv=<optimized out>) at run.c:285
#15 0x000000000043726a in gabble_main (argc=1, argv=0x7fffffffe3f8) at gabble.c:177
#16 0x00007ffff5244ead in __libc_start_main (main=<optimized out>, argc=<optimized out>, ubp_av=<optimized out>, init=<optimized out>, 
    fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe3e8) at libc-start.c:228
#17 0x0000000000436e99 in _start ()

I have no idea what a main arena is. Poking around a little in gdb suggests that the WockyDataForm object, and the hash table in its 'fields' field, are valid; maybe the contents of the hash table are not?
Comment 1 Jonny Lamb 2011-11-09 00:23:25 UTC
Here is a patch, kind sir. Please accept my most sincere apologies.
Comment 2 Will Thompson 2011-11-09 00:59:18 UTC
looks good, merge to stable and master please!
Comment 3 Jonny Lamb 2011-11-09 02:07:19 UTC
Le done, cheers.


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.