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 702127 - Crash under cal_backend_store_save_cache_now()
Crash under cal_backend_store_save_cache_now()
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: Calendar
3.8.x (obsolete)
Other Linux
: Normal critical
: ---
Assigned To: evolution-calendar-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2013-06-12 20:25 UTC by David Woodhouse
Modified: 2018-06-21 16:33 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description David Woodhouse 2013-06-12 20:25:00 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)
Comment 1 Milan Crha 2013-08-15 20:04:49 UTC
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.
Comment 2 Milan Crha 2015-11-19 07:24:26 UTC
(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+)
Comment 3 Milan Crha 2018-06-21 16:33:52 UTC
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+)