Red Hat Bugzilla – Bug 157074
Segfault trying to sync calendar with an multi-day all-day event
Last modified: 2007-11-30 17:07:17 EST
1. Create a new event in evolution
2. Select "all day event"
3. Make the end date a date at least a day older than the start date
4. Make sure that "Split multi-day events" is enabled in the ECalendar conduit
4. Launch a sync
(gpilotd:26204): libecal-CRITICAL **: file e-cal-component.c: line 1100
(e_cal_component_get_icalcomponent): assertion `priv->need_sequence_inc ==
An all day event that stays within a day doesn't crash.
With "Split multi-day events" disabled, the event(s) aren't synced at all.
The snippet of code causing the crash in the conduit is probably in
dt_end.value = &end_value;
e_cal_component_set_dtend (clone, &dt_end);
/* FIXME Error handling */ e_cal_create_object
(ctxt->client, e_cal_component_get_icalcomponent (clone), NULL, NULL);
e_cal_component_set_dtend sets priv->need_sequence_inc = TRUE;
but e_cal_component_get_icalcomponent has the assert: g_return_val_if_fail
(priv->need_sequence_inc == FALSE, NULL);
So this can't possibly ever work correctly.
One possible fix is probably:
+ e_cal_component_commit_sequence (clone);
in between the e_cal_component_set_dtend() and the
The "Split multi-day events" is probably another problem, in that same function.
Reassigning to evolution, as the conduits is actually there.
I've filed this upstream here:
Created attachment 114232 [details]
Adding patch to rawhide; built as evolution-2.3.8-3
Adding patch to FC-3 for an update; building as evolution-2.0.4-7
Test update for FC3 here:
Upstream committed a slightly different patch with better-looking error-handling.
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.