GNOME Bugzilla – Bug 491755
EDS crashed at start up
Last modified: 2009-04-27 10:19:14 UTC
Just started evolution and eds crashed. libecal-ERROR **: file e-cal-util.c: line 316 (compute_alarm_range): assertion failed: (*alarm_start <= *alarm_end) aborting... Program received signal SIGABRT, Aborted.
+ Trace 173940
Thread NaN (LWP 7654)
Created attachment 103409 [details] [review] patch in e-cal-util.c The whole logic seems right.. There was only one issue though - icaldurationtype_as_int would return an 'int' but was being assigned to a 'time_t' [some machines define time_t as an unsigned int].. that's one case where 'alarm_start' could become greater than 'alarm_end' I'm not sure if the patch fixes the bug, but it definitely is a part of the fix.
I don't think it is much relavent.
Bumping version to a stable release.
All the query is somehow funny, see the expression statement: (has-alarms-in-range? (make-time \"20071101T135153Z\") (make-time \"20071030T183000Z\")) These two are in the different order too, thus start=1193925113 is greater than end=1193769000 and because these values are assigned initially to *alarm_start and *alarm_end, then the assertion is supposed to be triggered since the beginning. The question is: "How can one request such query?"
*** Bug 548396 has been marked as a duplicate of this bug. ***
I was able to trigger this only ever when going back in system time, as these values seem to be got from gconf, time between last notified and actual time. Is it possible you played with either gconf or the system time here? Nonetheless, the check for correct value stored in gconf might not hurt.
Created attachment 132210 [details] [review] proposed evo patch for evolution; Sanitize values from GConf before using them.
Seems fine for me. To master & stable.
Created commit d4def43 in master. Created commit 796768f in gnome-2-26.