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 672980 - tp_account_get_protocol: assertion `TP_IS_ACCOUNT (account)' failed
tp_account_get_protocol: assertion `TP_IS_ACCOUNT (account)' failed
Status: RESOLVED FIXED
Product: folks
Classification: Platform
Component: Telepathy backend
git master
Other Linux
: Normal major
: Unset
Assigned To: folks-maint
folks-maint
: 672351 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2012-03-28 08:58 UTC by Guillaume Desmottes
Modified: 2012-03-31 19:48 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
tpf-persona: use tp_connection_get_account() (2.63 KB, patch)
2012-03-28 09:24 UTC, Guillaume Desmottes
committed Details | Review

Description Guillaume Desmottes 2012-03-28 08:58:25 UTC
I got this empathy-chat crash when I disconnected the network (using NM's applet) while having a chat open.

(empathy-chat:6349): tp-glib-CRITICAL **: tp_account_get_protocol: assertion `TP_IS_ACCOUNT (account)' failed

Program received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff56bc01c in g_logv (log_domain=0x7ffff7187d1e "tp-glib", log_level=G_LOG_LEVEL_CRITICAL, 
    format=0x7ffff573f540 "%s: assertion `%s' failed", args1=0x7fffffffbc08) at gmessages.c:758
758			G_BREAKPOINT ();
(gdb) bt full
  • #0 g_logv
    at gmessages.c line 758
  • #1 g_log
    at gmessages.c line 792
  • #2 g_return_if_fail_warning
  • #3 tp_account_get_protocol
    at account.c line 2284
  • #4 tpf_persona_construct
    at /home/cassidy/gnome/folks/backends/telepathy/lib/tpf-persona.vala line 620
  • #5 tpf_persona_new
    at /home/cassidy/gnome/folks/backends/telepathy/lib/tpf-persona.vala line 613
  • #6 _tpf_persona_store_add_persona_from_contact
    at /home/cassidy/gnome/folks/backends/telepathy/lib/tpf-persona-store.vala line 2152
  • #7 _tpf_persona_store_ensure_persona_from_contact
    at /home/cassidy/gnome/folks/backends/telepathy/lib/tpf-persona-store.vala line 2122
  • #8 tpf_persona_dup_for_contact
    at /home/cassidy/gnome/folks/backends/telepathy/lib/tpf-persona.vala line 1116
  • #9 empathy_create_individual_from_tp_contact
    at empathy-utils.c line 1177
  • #10 empathy_ensure_individual_from_tp_contact
    at empathy-utils.c line 1213
  • #11 empathy_chat_get_contact_menu
    at empathy-chat.c line 4173
  • #12 chat_window_contact_menu_update
    at empathy-chat-window.c line 587
  • #13 chat_window_update
    at empathy-chat-window.c line 774
  • #14 chat_window_update_chat_tab_full
    at empathy-chat-window.c line 964
  • #15 chat_window_update_chat_tab
    at empathy-chat-window.c line 973
  • #16 g_cclosure_marshal_VOID__PARAM
    at gmarshal.c line 1042
  • #17 g_closure_invoke
    at gclosure.c line 777
  • #18 signal_emit_unlocked_R
    at gsignal.c line 3547
  • #19 g_signal_emit_valist
    at gsignal.c line 3296
  • #20 g_signal_emit
    at gsignal.c line 3352
  • #21 g_object_dispatch_properties_changed
    at gobject.c line 1041
  • #22 g_object_notify_by_spec_internal
    at gobject.c line 1133
  • #23 g_object_notify
    at gobject.c line 1175
  • #24 chat_invalidated_cb
  • #25 ffi_call_unix64
    at ../src/x86/unix64.S line 75
  • #26 ffi_call
    at ../src/x86/ffi64.c line 486
  • #27 g_cclosure_marshal_generic
    at gclosure.c line 1451
  • #28 g_closure_invoke
    at gclosure.c line 777
  • #29 signal_emit_unlocked_R
    at gsignal.c line 3547
  • #30 g_signal_emit_valist
    at gsignal.c line 3296
  • #31 g_signal_emit
    at gsignal.c line 3352
  • #32 tp_proxy_emit_invalidated
    at proxy.c line 572
  • #33 tp_channel_closed_cb
    at channel.c line 1222
  • #34 tp_channel_closed_cb
    at channel.c line 1206
  • #35 _tp_cli_channel_invoke_callback_for_closed
    at _gen/tp-cli-channel-body.h line 27
  • #36 tp_proxy_signal_invocation_run
    at proxy-signals.c line 268
  • #37 g_idle_dispatch
    at gmain.c line 4634
  • #38 g_main_dispatch
    at gmain.c line 2515
  • #39 g_main_context_dispatch
    at gmain.c line 3052
  • #40 g_main_context_iterate
    at gmain.c line 3123
  • #41 g_main_context_iteration
    at gmain.c line 3184
  • #42 g_application_run
    at gapplication.c line 1496
  • #43 main
    at empathy-chat.c line 166

Comment 1 Guillaume Desmottes 2012-03-28 09:24:27 UTC
Created attachment 210764 [details] [review]
tpf-persona: use tp_connection_get_account()

telepathy-glib introduced API to get the TpAccount of a TpConnection so Folks
doesn't have to do it manually.

This has the nice side effect of fixing a crash when TpAccount/TpConnection
are momentary out of sync while connecting/disconnecting accounts.
Comment 2 Philip Withnall 2012-03-28 09:32:36 UTC
Review of attachment 210764 [details] [review]:

Yay for code reduction! Please commit after adding a NEWS entry. Thanks.
Comment 3 Guillaume Desmottes 2012-03-28 09:36:10 UTC
Attachment 210764 [details] pushed as 278de0b - tpf-persona: use tp_connection_get_account()
Comment 4 Philip Withnall 2012-03-31 19:48:34 UTC
*** Bug 672351 has been marked as a duplicate of this bug. ***