After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 709677 - crash when connecting SIP client
crash when connecting SIP client
Status: RESOLVED FIXED
Product: empathy
Classification: Core
Component: tp-aw
unspecified
Other Linux
: Normal normal
: ---
Assigned To: empathy-maint
empathy-maint
Depends on:
Blocks:
 
 
Reported: 2013-10-08 19:17 UTC by Guillaume Desmottes
Modified: 2013-10-10 14:06 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
prevent infinite loop if ContactInfo is not implemented (1.60 KB, patch)
2013-10-09 17:41 UTC, Guillaume Desmottes
accepted-commit_now Details | Review

Description Guillaume Desmottes 2013-10-08 19:17:29 UTC
Original bug report: https://bugzilla.redhat.com/show_bug.cgi?id=1016298

SIP-accounts are broken in empathy-accounts, they cannot be even selected while online, and if you select it while it's offline, and then make it online, it will lead to unpredictable results.
Comment 1 Guillaume Desmottes 2013-10-08 19:19:25 UTC
warning: core file may not match specified executable file.
[New LWP 31215]
[New LWP 31221]
[New LWP 31217]
[New LWP 31216]
warning: Could not load shared library symbols for 4 libraries, e.g. /lib64/libX11.so.6.
Use the "info sharedlibrary" command to see the complete listing.
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".
Core was generated by `empathy-accounts'.
Program terminated with signal SIGSEGV, Segmentation fault.

Thread 1 (Thread 0x7f7830313a40 (LWP 31215))

  • #0 g_type_check_instance_is_a
    at gtype.c line 3975
  • #1 gtk_widget_hide
    at gtkwidget.c line 4413
  • #2 reload_contact_info
    at tpaw-user-info.c line 393
  • #3 connection_contact_info_prepared_cb
    at tpaw-user-info.c line 374
  • #4 g_simple_async_result_complete
    at gsimpleasyncresult.c line 777
  • #5 complete_in_idle_cb
    at gsimpleasyncresult.c line 789
  • #6 g_main_dispatch
    at gmain.c line 3065
  • #7 g_main_context_dispatch
    at gmain.c line 3641
  • #8 g_main_context_iterate
    at gmain.c line 3712
  • #9 g_main_context_iteration
    at gmain.c line 3773
  • #10 g_application_run
    at gapplication.c line 1635
  • #11 main
    at empathy-accounts.c line 250

Comment 2 Guillaume Desmottes 2013-10-08 19:51:18 UTC
https://git.gnome.org/browse/telepathy-account-widgets/commit/?id=4874591ca5fd0981a2fa471dffb8975001c807aa
introduced an infinite loop:

- reload_contact_info() is called
- TP_CONNECTION_FEATURE_CONTACT_INFO isn't prepared on the connection so we try to prepare it
- connection_contact_info_prepared_cb is called and succeed (trying to prepare a non CORE feature isn't fatal) and then call reload_contact_info()
- TP_CONNECTION_FEATURE_CONTACT_INFO is still not prepared on the connection, retry to prepare it
- etc.

Marco: why did you introduced this commit? It's way cleaner to rely on the client factory to prepare feature than manually do it it. empathy-accounts do so by preparing the account manager before doing anything else and using EmpathyClient asking to prepare CONTACT_INFO. Can't we do the same with GOA?
Comment 3 Marco Barisione 2013-10-08 20:26:44 UTC
Because I introduced it before fully understanding how the client factory worked in empathy. I opened #706892 a few weeks ago about this.
Comment 4 Guillaume Desmottes 2013-10-09 17:41:07 UTC
Created attachment 256842 [details] [review]
prevent infinite loop if ContactInfo is not implemented
Comment 5 Guillaume Desmottes 2013-10-09 19:10:45 UTC
Here is a simple workaround as we should really fix this loop ASAP.
Comment 6 Guillaume Desmottes 2013-10-10 14:06:49 UTC
This problem has been fixed in our software repository. The fix will go into the next software release. Thank you for your bug report.