GNOME Bugzilla – Bug 630321
Disabling IMAPX account produces runtime warnings
Last modified: 2013-09-14 16:53: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
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.
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:
+ Trace 223855
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.
Review of attachment 170839 [details] [review]: This looks like the correct fix to me; thanks.
Created commit bd971e9 in eds master (2.33.1+) Created commit 55cbe60 in eds gnome-2-32 (2.32.1+)