empathy-chat crashed with SIGSEGV in _tp_base_client_handle_channels()

Bug #1017463 reported by Jean-Louis Dupond
62
This bug affects 12 people
Affects Status Importance Assigned to Milestone
Empathy
Unknown
Unknown
empathy (Ubuntu)
Fix Released
Medium
Unassigned
Precise
Fix Released
Undecided
Unassigned

Bug Description

Crashed when opening chat window

ProblemType: Crash
DistroRelease: Ubuntu 12.10
Package: empathy 3.5.1-0ubuntu3
ProcVersionSignature: Ubuntu 3.5.0-1.1-generic 3.5.0-rc3
Uname: Linux 3.5.0-1-generic x86_64
ApportVersion: 2.2.5-0ubuntu1
Architecture: amd64
Date: Mon Jun 25 14:16:14 2012
ExecutablePath: /usr/lib/empathy/empathy-chat
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Alpha amd64 (20110705.1)
ProcCmdline: /usr/lib/empathy/empathy-chat
ProcEnviron:
 SHELL=/bin/bash
 PATH=(custom, no user)
 LANGUAGE=nl:en_AU:en
 LANG=nl_BE.UTF-8
SegvAnalysis:
 Segfault happened at: 0x7f36a4bae0d8: mov 0x8(%rax),%r8
 PC (0x7f36a4bae0d8) ok
 source "0x8(%rax)" (0x00000008) not located in a known VMA region (needed readable region)!
 destination "%r8" ok
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: empathy
StacktraceTop:
 ?? () from /usr/lib/x86_64-linux-gnu/libtelepathy-glib.so.0
 ffi_call_unix64 () from /usr/lib/x86_64-linux-gnu/libffi.so.6
 ffi_call () from /usr/lib/x86_64-linux-gnu/libffi.so.6
 g_cclosure_marshal_generic () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
 ?? () from /usr/lib/x86_64-linux-gnu/libdbus-glib-1.so.2
Title: empathy-chat crashed with SIGSEGV in ffi_call_unix64()
UpgradeStatus: Upgraded to quantal on 2012-06-19 (5 days ago)
UserGroups: adm admin cdrom dialout libvirtd lpadmin plugdev sambashare
XsessionErrors:
 (gnome-shell-calendar-server:2299): GLib-GIO-ERROR **: Settings schema 'org.gnome.evolution.calendar' is not installed
 (remmina:20717): Gtk-WARNING **: drawing failure for widget `GtkDrawingArea': invalid matrix (not invertible)

Revision history for this message
Jean-Louis Dupond (dupondje) wrote :
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 _tp_base_client_handle_channels (iface=<optimized out>, account_path=<optimized out>, connection_path=<optimized out>, channels_arr=0x15ab2e0, requests_arr=0x15bf060, user_action_time=5351515, handler_info=0x15bd9e0, context=0x1590b20) at base-client.c:2338
 ffi_call_unix64 () at ../src/x86/unix64.S:75
 ffi_call (cif=cif@entry=0x7fffca9d15f0, fn=fn@entry=0x7f36a4cbc720 <tp_svc_client_handler_handle_channels>, rvalue=<optimized out>, avalue=<optimized out>, avalue@entry=0x7fffca9d1490) at ../src/x86/ffi64.c:486
 g_cclosure_marshal_generic (closure=0x7fffca9d1760, return_gvalue=0x0, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=0x7f36a4cbc720) at /build/buildd/glib2.0-2.33.2/./gobject/gclosure.c:1454
 invoke_object_method (message=0x15bafc0, connection=0x1581f20, method=0x7f36a4f5db60, object_info=0x7f36a4f5b780, object=0x15a52e0) at dbus-gobject.c:1889

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in empathy (Ubuntu):
importance: Undecided → Medium
summary: - empathy-chat crashed with SIGSEGV in ffi_call_unix64()
+ empathy-chat crashed with SIGSEGV in _tp_base_client_handle_channels()
tags: removed: need-amd64-retrace
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in empathy (Ubuntu):
status: New → Confirmed
Revision history for this message
Linuxexperte (andrea-koeth) wrote :

I also just encountered this bug here on my Ubuntu 12.10, as I just wanted to start a chat-session with a good friend of mine...

I hope, this gut gets fixed soon...

Greetings
Linuxexperte

Revision history for this message
In , Xavier Claessens (zdra) wrote :

empathy-chat crash at startup, the bug was reported in https://bugzilla.gnome.org/show_bug.cgi?id=678807.

It seems to be a tp-glib 0.19.x regression.

#0 _tp_base_client_handle_channels (iface=<optimized out>,
    account_path=<optimized out>, connection_path=<optimized out>,
    channels_arr=0x1946460, requests_arr=0x1932b40, user_action_time=50973156,
    handler_info=0x19491e0, context=0x18f2bc0) at base-client.c:2338
#1 0x00007f4652588a14 in ffi_call_unix64 ()
   from /usr/lib/x86_64-linux-gnu/libffi.so.6
#2 0x00007f4652588435 in ffi_call ()
   from /usr/lib/x86_64-linux-gnu/libffi.so.6
#3 0x00007f465a15c50b in g_cclosure_marshal_generic (closure=0x7fff5bebdf00,
    return_gvalue=0x0, n_param_values=8, param_values=<optimized out>,
    invocation_hint=<optimized out>, marshal_data=0x7f465e1815f0)
    at /build/buildd/glib2.0-2.32.3/./gobject/gclosure.c:1454
#4 0x00007f465f2bf198 in invoke_object_method (message=0x193db30,
    connection=0x18f02f0, method=0x7f465e421ba0, object_info=0x7f465e41f7c0,
    object=0x191c290) at dbus-gobject.c:1889
#5 object_registration_message (connection=0x18f02f0, message=0x193db30,
    user_data=<optimized out>) at dbus-gobject.c:2151
#6 0x00007f4659244b01 in ?? () from /lib/x86_64-linux-gnu/libdbus-1.so.3
#7 0x00007f46592369f0 in dbus_connection_dispatch ()
   from /lib/x86_64-linux-gnu/libdbus-1.so.3
#8 0x00007f465f2bc425 in message_queue_dispatch (source=<optimized out>,
    callback=<optimized out>, user_data=<optimized out>) at dbus-gmain.c:90
#9 0x00007f4659e9ed53 in g_main_dispatch (context=0x17f3330)
---Type <return> to continue, or q <return> to quit---
    at /build/buildd/glib2.0-2.32.3/./glib/gmain.c:2539
#10 g_main_context_dispatch (context=0x17f3330)
    at /build/buildd/glib2.0-2.32.3/./glib/gmain.c:3075
#11 0x00007f4659e9f0a0 in g_main_context_iterate (dispatch=1,
    block=<optimized out>, context=0x17f3330, self=<optimized out>)
    at /build/buildd/glib2.0-2.32.3/./glib/gmain.c:3146
#12 g_main_context_iterate (context=0x17f3330, block=<optimized out>,
    dispatch=1, self=<optimized out>)
    at /build/buildd/glib2.0-2.32.3/./glib/gmain.c:3083
#13 0x00007f4659e9f164 in g_main_context_iteration (context=0x17f3330,
    may_block=1) at /build/buildd/glib2.0-2.32.3/./glib/gmain.c:3207
#14 0x00007f465a432c94 in g_application_run (application=0x1901030,
    argc=<optimized out>, argv=0x7fff5bebe548)
    at /build/buildd/glib2.0-2.32.3/./gio/gapplication.c:1507
#15 0x000000000042f52e in main ()

Revision history for this message
Bilal Shahid (s9iper1) wrote :

found an upstream
attaching

Changed in empathy (Ubuntu):
status: Confirmed → Triaged
Revision history for this message
In , Xavier Claessens (zdra) wrote :

Found the root cause! It hit g_return_val_if_fail (TP_IS_ACCOUNT (account), NULL); in empathy_tp_chat_new(). In that case indeed NULL channel is returned and no error is provided.

This is because tp_connection_get_account() returns NULL because the TpAccount does not know its Connection yet. This is because in HandleChannels we create both TpAccount and TpConnection objects but we need to wait for TpAccount to prepare CORE before it calls _tp_connection_set_account().

This crash does not happen when empathy-chat is already started because empathy-chat loads a full Folks aggregator, so it has the time to prepare CORE on all TpAccount before HandleChannel happens.

I think TpBaseClient should prepare TpAccount and TpConnection before creating the TpChannel. I think it is reasonable to consider that TpChannel's constructor assert that its TpConnection is already prepared (atm it doesn't, TpChannel even prepare CORE on its connection as part of TpChannel's CORE feature).

Changed in empathy:
importance: Unknown → Medium
status: Unknown → Confirmed
Revision history for this message
In , Xavier Claessens (zdra) wrote :
Revision history for this message
Bilal Shahid (s9iper1) wrote :

there will be soon a stable release as cassidy said
https://bugzilla.gnome.org/show_bug.cgi?id=678807

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package empathy - 3.5.2-0ubuntu1

---------------
empathy (3.5.2-0ubuntu1) quantal-proposed; urgency=low

  [ Brian Curtis ]
  * New upstream release (LP: #1009114)
  * debian/control:
    - bump libgtk-3-dev dep to 3.5.1
    - bump libclutter-gtk-1.0-dev dep to 1.1.2
    - bump libtelepathy-glib-dev dep to 0.19.0
    - bump libgoa-1.0-dev dep to 3.5.1
  * debian/rules:
    - dropped --enable-empathy-av as it's now handled by empathy-call
  * debian/patches:
    - dropped 44_contact_list_width.patch as empathy handles presence
      chooser widget size differently.

  [ Ken VanDine ]
  * debian/control
    - Dropped empathy-call, we don't need this split out anymore
    - Make empathy replace and conflict with empathy-call
  * debian/patches/44_lp_1017463.patch
    - fix a race crash when the TpAccount of the TpConnection is not
      set yet (LP: #1017463)
 -- Ken VanDine <email address hidden> Thu, 28 Jun 2012 09:37:06 -0400

Changed in empathy (Ubuntu):
status: Triaged → Fix Released
Brian Curtis (bcurtiswx)
Changed in empathy:
importance: Medium → Unknown
status: Confirmed → Unknown
Revision history for this message
Chris Halse Rogers (raof) wrote : Please test proposed package

Hello Jean-Louis, or anyone else affected,

Accepted empathy into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/empathy/3.4.2.3-0ubuntu1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in empathy (Ubuntu Precise):
status: New → Fix Committed
tags: added: verification-needed
Revision history for this message
Clint Byrum (clint-fewbar) wrote :

Since this is a race condition and it was fixed as part of the update in bug 1018784, I'm going to mark this as verification-done.

tags: added: verification-done
Revision history for this message
Scott Kitterman (kitterman) wrote : Update Released

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

tags: removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package empathy - 3.4.2.3-0ubuntu1

---------------
empathy (3.4.2.3-0ubuntu1) precise-proposed; urgency=low

  * New upstream release (LP: #1018784).
    - Use a weak reference while loading the logs asynchronously to
      detect when the object has been destroyed
    - irc connection parameters dialog: "apply" button stays
      unsensitive
    - empathy-chat crashed with SIGSEGV in
      _tp_base_client_handle_channels() (LP: #1017463)
 -- Brian Curtis <email address hidden> Thu, 28 Jun 2012 11:45:02 -0400

Changed in empathy (Ubuntu Precise):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.