GNOME Bugzilla – Bug 617181
Crash in icalcomponent_get_first_property at icalcomponent.c:496
Last modified: 2013-08-23 18:39:17 UTC
I resumed my laptop from a night of well deserved sleep. Program received signal SIGSEGV, Segmentation fault. icalcomponent_get_first_property (c=0x1, kind=ICAL_RECURRENCEID_PROPERTY) at icalcomponent.c:496 496 for( c->property_iterator = pvl_head(c->properties); (gdb) bt
+ Trace 221609
365 366 for (iter = list; iter != NULL; iter = iter->next) { 367 ECalendarViewEvent *event = iter->data; 368 ECal *client; 369 icalcomponent *icalcomp; 370 gboolean read_only; 371 372 if (event == NULL || event->comp_data == NULL) 373 continue; 374 375 client = event->comp_data->client; 376 icalcomp = event->comp_data->icalcomp; 377 378 e_cal_is_read_only (client, &read_only, NULL); 379 sources_are_editable &= !read_only; 380 381 recurring |= 382 ----- here ---- e_cal_util_component_is_instance (icalcomp) || 383 e_cal_util_component_has_recurrences (icalcomp); 384 } (gdb) p *event Cannot access memory at address 0x0 (gdb) p event->comp_data Cannot access memory at address 0x4 (gdb) p event->comp_data->icalcomp Cannot access memory at address 0x4 (gdb) p iter $3 = 0xaaf19410 = {0xa7448b0} (gdb) p list $4 = 0xaaf19410 = {0xa7448b0} (gdb) p iter->data $5 = (gpointer) 0xa7448b0 (gdb) p iter->next $6 = 0x0 (gdb) p list $7 = 0xaaf19410 = {0xa7448b0} (gdb) p iter $8 = 0xaaf19410 = {0xa7448b0} (gdb) p list->net There is no member named net. (gdb) p list->next $9 = 0x0 (gdb) p *(ECalendarView *)selectable $14 = {parent = {container = {widget = {object = {parent_instance = {g_type_instance = {g_class = 0x8d35e00}, ref_count = 9, qdata = 0x21a402d0}, flags = 2166752}, private_flags = 1536, state = 0 '\000', saved_state = 0 '\000', name = 0x0, style = 0xb337bc80 [ClearlooksStyle], requisition = {width = 85, height = 145}, allocation = {x = 334, y = 100, width = 1003, height = 1008}, window = 0xa5d48950 [GdkWindow], parent = 0x9309450 [GtkNotebook]}, focus_child = 0x0, border_width = 0, need_resize = 0, resize_mode = 0, reallocate_redraws = 0, has_focus_chain = 0}, children = 0x83156d0 = { 0xabecf858, 0xabeeadc8, 0xabfc2fc0, 0xab8b8018, 0xa9aba078, 0xa5e83470, 0xabb0fd38}, rows = 0xa92d5be0, cols = 0xab085618, nrows = 3, ncols = 3, column_spacing = 0, row_spacing = 0, homogeneous = 0}, in_focus = 1, priv = 0xa92d5ba8} (gdb) p *((ECalendarView *)selectable)->priv $15 = {calendar = 0xa763fb0 [GnomeCalendar], model = 0xaafa2758 [ECalModelCalendar], default_category = 0x0, copy_target_list = 0xa3b0e88, paste_target_list = 0x9237b88} (gdb) p e_calendar_view_get_selected_events (selectable) [Thread 0x9eef6b70 (LWP 2023) exited] $17 = 0x21bb54c0 = {0xa7448b0} (gdb) p $17->data $18 = (gpointer) 0xa7448b0 (gdb) p $17->next $19 = 0x0 (gdb) p *(ECalendarViewEvent* )$18 $21 = {canvas_item = 0x11672af0, comp_data = 0xa9209180, start = 1272477600, end = 1272481200, start_minute = 1140, end_minute = 1200, different_timezone = 0, is_editable = 0, tooltip = 0x0, timeout = -1, color = 0x0, x = 810, y = 896} (gdb) p *((ECalendarViewEvent* )$18)->comp_data $22 = {object = {g_type_instance = {g_class = 0xaae95638}, ref_count = 47, qdata = 0xd}, client = 0x125f2a10, icalcomp = 0x1, instance_start = 1, instance_end = 1, dtstart = 0x4000, dtend = 0xffffc800, due = 0x18000, completed = 0x3800, created = 0x0, lastmodified = 0xffffbc00, color = 0x1c000 <Address 0x1c000 out of bounds>, priv = 0x5400} (gdb) p *((ECalendarViewEvent* )$18)->comp_data->priv Cannot access memory at address 0x5400 Hmm [!] ...
I got similar crash in 2.31.2 while trying out different print options in calendar view. I have gnome schedule web calendar configured. (evolution:3008): calendar-gui-CRITICAL **: print_day_add_event: assertion `end > day_starts[0]' failed (evolution:3008): calendar-gui-CRITICAL **: print_day_add_event: assertion `end > day_starts[0]' failed (evolution:3008): calendar-gui-CRITICAL **: print_day_add_event: assertion `end > day_starts[0]' failed Detaching after fork from child process 7597. (evolution:3008): calendar-gui-CRITICAL **: print_day_add_event: assertion `end > day_starts[0]' failed (evolution:3008): calendar-gui-CRITICAL **: print_day_add_event: assertion `end > day_starts[0]' failed (evolution:3008): calendar-gui-CRITICAL **: print_day_add_event: assertion `end > day_starts[0]' failed (evolution:3008): libecal-CRITICAL **: e_cal_util_component_is_instance: assertion `icalcomp != NULL' failed (evolution:3008): libecal-CRITICAL **: e_cal_util_component_has_recurrences: assertion `icalcomp != NULL' failed (evolution:3008): libecal-CRITICAL **: e_cal_util_component_is_instance: assertion `icalcomp != NULL' failed (evolution:3008): libecal-CRITICAL **: e_cal_util_component_has_recurrences: assertion `icalcomp != NULL' failed Program received signal SIGSEGV, Segmentation fault. icalcomponent_get_first_property (c=0x1, kind=ICAL_RECURRENCEID_PROPERTY) at icalcomponent.c:496 496 icalcomponent.c: No such file or directory. in icalcomponent.c (gdb) bt
+ Trace 221752
Maybe a coincidence that the ECalendarView asked for selected components, then the view itself received an update on the list and freed components, thus the ECalendarView was working with already freed memory while checking values of those (previously) selected components. Maybe.
Changing calendar view, returned to day view, selected half an hr interval, typed appointment summary and evolution crashed. Program received signal SIGSEGV, Segmentation fault. 0xb79547e7 in pvl_head (L=0x0) at pvl.c:543 543 return (pvl_elem)L->head; (gdb) bt
+ Trace 228050
I think (I've a feeling) I addressed this issue. Please try with 3.2.0. There was some issue with reference counting when editing events. Maybe related, maybe no.
Downstream bug report from 3.2.2 with a similar backtrace as in comment #3: https://bugzilla.redhat.com/show_bug.cgi?id=772857
Closing as OBSOLETE since the stack traces are too old to be useful now.