GNOME Bugzilla – Bug 702127
Crash under cal_backend_store_save_cache_now()
Last modified: 2018-06-21 16:33:52 UTC
Assuming they're related... </m:SyncFolderItemsResponse> </s:Body> </s:Envelope> ** (evolution-calendar-factory:5312): WARNING **: ews_start_sync_thread: No response: Cannot resolve hostname (irsmsx102.ger.corp.intel.com) ** (evolution-calendar-factory:5312): WARNING **: ews_start_sync_thread: No response: Cannot resolve hostname (irsmsx102.ger.corp.intel.com) (evolution-calendar-factory:5312): libedata-cal-CRITICAL **: e_data_cal_view_component_matches: assertion `E_IS_CAL_COMPONENT (component)' failed (evolution-calendar-factory:5312): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed (evolution-calendar-factory:5312): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed (evolution-calendar-factory:5312): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed (evolution-calendar-factory:5312): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed (evolution-calendar-factory:5312): libecal-CRITICAL **: e_cal_component_get_icalcomponent: assertion `E_IS_CAL_COMPONENT (comp)' failed (evolution-calendar-factory:5312): libecal-CRITICAL **: e_cal_component_get_dtstart: assertion `E_IS_CAL_COMPONENT (comp)' failed (evolution-calendar-factory:5312): libecal-CRITICAL **: e_cal_component_get_dtend: assertion `E_IS_CAL_COMPONENT (comp)' failed libecal-Message: e_cal_recur_generate_instances_of_rule(): bogus component, does not have DTSTART. Skipping... (evolution-calendar-factory:5312): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed (evolution-calendar-factory:5312): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed (evolution-calendar-factory:5312): libecal-CRITICAL **: e_cal_component_get_icalcomponent: assertion `E_IS_CAL_COMPONENT (comp)' failed ==5312== ==5312== Process terminating with default action of signal 11 (SIGSEGV) ==5312== General Protection Fault ==5312== at 0x4EA48F6: e_cal_component_get_icalcomponent (e-cal-component.c:1163) ==5312== by 0x4C6158A: cal_backend_store_save_cache_now (e-cal-backend-store.c:327) ==5312== by 0x4C61C1B: cal_backend_store_save_cache_timeout_cb (e-cal-backend-store.c:379) ==5312== by 0x6ABD962: g_timeout_dispatch (gmain.c:4413) ==5312== by 0x6ABCE05: g_main_context_dispatch (gmain.c:3054) ==5312== by 0x6ABD157: g_main_context_iterate.isra.22 (gmain.c:3701) ==5312== by 0x6ABD559: g_main_loop_run (gmain.c:3895) ==5312== by 0x50F2A7C: dbus_server_run_server (e-dbus-server.c:222) ==5312== by 0x3CFC805CFB: ffi_call_unix64 (in /usr/lib64/libffi.so.6.0.1) ==5312== by 0x3CFC80562B: ffi_call (in /usr/lib64/libffi.so.6.0.1) ==5312== by 0x68366C4: g_cclosure_marshal_generic_va (gclosure.c:1550) ==5312== by 0x6835C56: _g_closure_invoke_va (gclosure.c:840) ==5312== by 0x684DD86: g_signal_emit_valist (gsignal.c:3234) ==5312== by 0x684EA71: g_signal_emit (gsignal.c:3384) ==5312== by 0x50F2D19: e_dbus_server_run (e-dbus-server.c:414) ==5312== by 0x400E00: main (evolution-calendar-factory.c:140)
I believe you see a variation of bug #698342, which is an issue in eds, not in ews, thus I move this there, with a possibility to mark this as a duplicate of it.
(In reply to Milan Crha from comment #1) > I believe you see a variation of bug #698342, which is an issue in eds, not > in ews, thus I move this there, with a possibility to mark this as a > duplicate of it. No, this is a different thing, also reported downstream as: https://bugzilla.redhat.com/show_bug.cgi?id=1249402 It seems to me that the backend (with the store) got freed during the cache saving, which resulted in the crash. I changed the code to not crash this way. Created commit 3ef246b in eds master (3.19.2+) Created commit 25ea5b2 in eds gnome-3-18 (3.18.3+)
Looking on this couple years later, the above change is overcomplicated and the worse, I've got a crash in cal_backend_store_save_cache_timeout_cb() at e-cal-backend-store.c:413 anyway, even really after those years (the code had a bug that the GSource had not been removed in the toggle-ref, only th timeout id had been set to zero). I simplified the change now and I also used GWeakRef, which is safer and helps with ref-counting. Created commit a49f593c3 in eds master (3.29.4+) Created commit 627493f7e in eds gnome-3-28 (3.28.4+)