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 637136 - Infinite loop when disconnecting accounts
Infinite loop when disconnecting accounts
Status: RESOLVED FIXED
Product: folks
Classification: Platform
Component: Telepathy backend
git master
Other Linux
: Normal normal
: Unset
Assigned To: folks-maint
folks-maint
Depends on:
Blocks:
 
 
Reported: 2010-12-13 09:50 UTC by Guillaume Desmottes
Modified: 2010-12-13 16:22 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Ensure each Persona is added to the relinked_personas list at most once (1.89 KB, patch)
2010-12-13 16:18 UTC, Philip Withnall
committed Details | Review

Description Guillaume Desmottes 2010-12-13 09:50:48 UTC
Sjoerd reported that often when he changes his presence to offline, Empathy is stuck in an infinite loop and starts eating all the memory of the world, trashing the system.

May or may not be related to bug #635105

Loaded symbols for /usr/lib/libjpeg.so.62
g_object_newv (object_type=<value optimized out>, n_parameters=0, 
    parameters=0x0) at /tmp/buildd/glib2.0-2.27.4/gobject/gobject.c:1373
1373	/tmp/buildd/glib2.0-2.27.4/gobject/gobject.c: No such file or directory.
	in /tmp/buildd/glib2.0-2.27.4/gobject/gobject.c
(gdb) bt
  • #0 g_object_newv
    at /tmp/buildd/glib2.0-2.27.4/gobject/gobject.c line 1373
  • #1 g_object_new
    at /tmp/buildd/glib2.0-2.27.4/gobject/gobject.c line 1298
  • #2 ??
    from /usr/lib/libgee.so.2
  • #3 _lambda12_
    at individual.c line 1498
  • #4 __lambda12__gh_func
    at individual.c line 1529
  • #5 g_hash_table_foreach
    at /tmp/buildd/glib2.0-2.27.4/glib/ghash.c line 1328
  • #6 folks_individual_update_im_addresses
    at individual.c line 1554
  • #7 _folks_individual_set_personas
    at individual.c line 1794
  • #8 folks_individual_set_personas
    at individual.c line 2186
  • #9 folks_individual_construct
    at individual.c line 704
  • #10 folks_individual_aggregator_add_personas
  • #11 folks_individual_aggregator_personas_changed_cb
    at individual-aggregator.c line 1736
  • #12 _folks_individual_aggregator_personas_changed_cb_folks_persona_store_personas_changed
    at individual-aggregator.c line 921
  • #13 g_cclosure_user_marshal_VOID__POINTER_POINTER_STRING_OBJECT_ENUM
    at persona-store.c line 453
  • #14 g_closure_invoke
    at /tmp/buildd/glib2.0-2.27.4/gobject/gclosure.c line 766
  • #15 signal_emit_unlocked_R
    at /tmp/buildd/glib2.0-2.27.4/gobject/gsignal.c line 3252
  • #16 g_signal_emit_valist
    at /tmp/buildd/glib2.0-2.27.4/gobject/gsignal.c line 2983
  • #17 g_signal_emit_by_name
    at /tmp/buildd/glib2.0-2.27.4/gobject/gsignal.c line 3077
  • #18 tpf_persona_store_account_status_changed_cb
    at tpf-persona-store.c line 1076
  • #19 _tp_marshal_VOID__UINT_UINT_UINT_STRING_BOXED
    at _gen/signals-marshal.c line 3125
  • #20 g_closure_invoke
  • #21 signal_emit_unlocked_R
    at /tmp/buildd/glib2.0-2.27.4/gobject/gsignal.c line 3252
  • #22 g_signal_emit_valist
    at /tmp/buildd/glib2.0-2.27.4/gobject/gsignal.c line 2983
  • #23 g_signal_emit
    at /tmp/buildd/glib2.0-2.27.4/gobject/gsignal.c line 3040
  • #24 _tp_account_update
    at account.c line 732
  • #25 _tp_cli_account_invoke_callback_for_account_property_changed
    at ../telepathy-glib/_gen/tp-cli-account-body.h line 94
  • #26 tp_proxy_signal_invocation_run
    at proxy-signals.c line 266
  • #27 g_main_dispatch
    at /tmp/buildd/glib2.0-2.27.4/glib/gmain.c line 2436
  • #28 g_main_context_dispatch
  • #29 g_main_context_iterate
    at /tmp/buildd/glib2.0-2.27.4/glib/gmain.c line 3087
  • #30 g_main_loop_run
    at /tmp/buildd/glib2.0-2.27.4/glib/gmain.c line 3295
  • #31 gtk_main
    at /tmp/buildd/gtk+3.0-2.91.5/gtk/gtkmain.c line 1297
  • #32 g_application_run
    at /tmp/buildd/glib2.0-2.27.4/gio/gapplication.c line 1216
  • #33 main
    at empathy.c line 725

Comment 1 Philip Withnall 2010-12-13 16:18:14 UTC
Created attachment 176341 [details] [review]
Ensure each Persona is added to the relinked_personas list at most once

http://git.collabora.co.uk/?p=user/pwith/folks;a=shortlog;h=refs/heads/637136-user-offline-infinite-loop
Comment 2 Philip Withnall 2010-12-13 16:22:22 UTC
Sjoerd says this fixes the infinite looping problem for him.

commit 3b61c964eac1dce60b9ab7d4f6e954fbef70ffa1
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Mon Dec 13 15:35:38 2010 +0000

    Ensure each Persona is added to the relinked_personas list at most once
    
    In some cases when relinking the user's Individual when taking Empathy
    offline, several of the user's Personas can get into the relinked_personas
    list multiple times. This causes an infinite loop of linking and relinking
    those Personas. Closes: bgo#637136

 folks/individual-aggregator.vala |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)