GNOME Bugzilla – Bug 671969
Crash in g_thread_join, e_ews_connection_dispose
Last modified: 2012-04-03 09:20:14 UTC
Moving this from a downstream bug report: https://bugzilla.redhat.com/show_bug.cgi?id=802411 [abrt] evolution-3.3.91-1.fc17: g_logv: Process /usr/bin/evolution was killed by signal 5 (SIGTRAP) libreport version: 2.0.8 abrt_version: 2.0.7 backtrace_rating: 4 cmdline: evolution comment: Died just after starting with newly configured EWS account. crash_function: g_logv executable: /usr/bin/evolution kernel: 3.3.0-0.rc6.git0.2.fc17.x86_64 reason: Process /usr/bin/evolution was killed by signal 5 (SIGTRAP) time: Mon 12 Mar 2012 02:46:21 PM CET xsession_errors: evolution-mail-CRITICAL **: e_mail_account_store_add_service: assertion `account != NULL' failed
+ Trace 229864
Thread 1 (Thread 0x7f88277fe700 (LWP 1665))
Created attachment 211206 [details] [review] ews patch for evolution-ews; This should fix it. The reason basically is that the 'simple' holds reference on 'cnc' and ews_active_job_done() function is called in a dedicated thread, which 'cnc' joins on dispose, thus to avoid race condition, unref the object in its own thread. I do not think there is anything better here and checking for cnc->ref_count whether it makes sense to run unref in the dedicated thread or not seems to me incorrect.
Created commit 6ee9d80 in ews master (3.5.1+) Created commit 49771be in ews gnome-3-4 (3.4.1+)