GNOME Bugzilla – Bug 303702
Segfault trying to sync calendar with an multi-day all-day event
Last modified: 2013-09-13 12:33:36 UTC
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 == FALSE' failed Segmentation fault 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 process_multi_day(): 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 e_cal_component_get_icalcomponent() calls. The "Split multi-day events" is probably another problem, in that same function. This is a clone of this downstream bug report: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=157074 This was filed against Evolution 2.0.2, but the code in e-d-s and evolution/calendar/conduits appears not to have changed.
I was wondering if anyone could either: 1) Check that my "patch" does what it's supposed to do 2) Could test this patch with a real Palm
Varadhan: Patch is available. Can you please review it ?
Any links to the patch? Also, Nagappan, did you verify the bug? I am not able to reproduce the bug by creating an all-day event. I am using the Current CVS-head code.
First, you need to make an all-day event spanning multiple days: 3. Make the end date a date at least a day older than the start date And the patch was "inline" above, and also at: https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=114232
I can reproduce the bug for Multi-day events. Also, "3. Make the end date a date at least a day older than the start date" not possible, probably, would david would mean "3. Make the start date a date at least a day older than end date".
*** Bug 306694 has been marked as a duplicate of this bug. ***
Hmm, no it is "3. Make the end date a date at least a day older than the start date", meaning that the end date is after the start date, and the end date is at least a day after the start date.
The patch is working fine.
Varadhan: I have tested the above patch. Can you commit it.
Mubeen: Thanks for your comments. I though I committed David's patch long ago with few changes as mentioned http://mail.gnome.org/archives/evolution-patches/2005-July/msg00018.html However, it seems to have got missed. Will be committing the patch mentioned in that mail soon.
Fix in CVS for 2.4.1 and HEAD.
The small things: 2005-09-30 Veerapuram Varadhan <vvaradhan@novell.com> Fixes #303702 * calendar/conduits/calendar/calendar-conduit.c: (process_multi_day): Call e_cal_component_commit_sequence() after modifying the properties of an ECalComponent and before fetching its icalcomponent. Reworked the patch from Dave Malcolm <dmalcolm@redhat.com> I actually wrote the original patch...
*** Bug 270431 has been marked as a duplicate of this bug. ***
bug 317411 could also be a dup, please check when closing this one
Andre: 317411 is not a duplicate of this bug. Bastein: Corrected and committed the corrected changelog. :-) Fixed in Head.