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 630321 - Disabling IMAPX account produces runtime warnings
Disabling IMAPX account produces runtime warnings
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: Mailer
2.32.x (obsolete)
Other Linux
: Normal normal
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
evolution[imapx]
Depends on:
Blocks:
 
 
Reported: 2010-09-22 08:26 UTC by Milan Crha
Modified: 2013-09-14 16:53 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
eds patch (1.04 KB, patch)
2010-09-22 15:02 UTC, Milan Crha
committed Details | Review

Description Milan Crha 2010-09-22 08:26:32 UTC
When I right click the account node of theleft folder tree in mailer and choose "Disable account", then there are couple runtime warnings printed on the console:

(evolution:3710): GLib-GObject-WARNING **: invalid uninstantiatable type `gint' in cast to `GCancellable'
x
(evolution:3710): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed

(evolution:3710): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `gint'

(evolution:3710): GLib-GObject-CRITICAL **: g_signal_emit_valist: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(evolution:3710): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
Comment 1 Milan Crha 2010-09-22 13:52:22 UTC
Err, I was disabling an IMAPx account, but I cannot reproduce it now :( it happened to me twice, for the first time it crashed with those warnings above, for the second time it just printed them and survived.
Comment 2 Milan Crha 2010-09-22 14:12:30 UTC
OK, it comes from IMAPX. Let it finish its work, have selected a folder from there, then right click over the account node (only right click, do not select it), and disable the account. This happens:
  • #0 g_logv
    at gmessages.c line 430
  • #1 g_log
    at gmessages.c line 568
  • #2 g_type_check_instance_cast
    at gtype.c line 3986
  • #3 camel_operation_cancel
    at camel-operation.c line 302
  • #4 imapx_server_dispose
    at camel-imapx-server.c line 4776
  • #5 g_object_unref
    at gobject.c line 2543
  • #6 free_connection
    at camel-imapx-conn-manager.c line 59
  • #7 g_slist_foreach
    at gslist.c line 855
  • #8 imapx_prune_connections
    at camel-imapx-conn-manager.c line 72
  • #9 camel_imapx_conn_manager_close_connections
    at camel-imapx-conn-manager.c line 385
  • #10 imapx_disconnect
    at camel-imapx-store.c line 289
  • #11 camel_service_disconnect
    at camel-service.c line 384
  • #12 mail_store_remove_cb
    at e-mail-store.c line 346
  • #13 do_async_event
    at mail-mt.c line 642
  • #14 mail_msg_proxy
    at mail-mt.c line 490
  • #15 g_thread_pool_thread_proxy
    at gthreadpool.c line 314
  • #16 g_thread_create_proxy
    at gthread.c line 1897
  • #17 start_thread
    at pthread_create.c line 301
  • #18 clone
    at ../sysdeps/unix/sysv/linux/i386/clone.S line 133

Comment 3 Milan Crha 2010-09-22 15:02:56 UTC
Created attachment 170839 [details] [review]
eds patch

for evolution-data-server;

OK, so it was IMAPX's parser thread causing trouble together with the server's dispose function. Moving locks around a bit (guarding the server::op within the queue lock) fixes the issue for me. Also note that every joinable thread should be joined, to free its resources.
Comment 4 David Woodhouse 2010-09-22 15:12:35 UTC
Review of attachment 170839 [details] [review]:

This looks like the correct fix to me; thanks.
Comment 5 Milan Crha 2010-09-29 10:04:25 UTC
Created commit bd971e9 in eds master (2.33.1+)
Created commit 55cbe60 in eds gnome-2-32 (2.32.1+)