GNOME Bugzilla – Bug 427232
Crash on start-up (libevolution-calendar.so)
Last modified: 2007-06-12 23:18:41 UTC
The bug has been opened on https://bugs.launchpad.net/ubuntu/+source/evolution/+bug/103877 "Binary package hint: evolution The crash happens every time I start evolution. I didn't have problems with 2.9.x, only 2.10. ProblemType: Crash Architecture: i386 CrashCounter: 1 Date: Fri Apr 6 20:33:07 2007 DistroRelease: Ubuntu 7.04 ExecutablePath: /usr/bin/evolution-2.10 Package: evolution 2.10.0-0ubuntu2 ... .
+ Trace 125748
Thread 1 (process 5520)
*** Bug 433543 has been marked as a duplicate of this bug. ***
The backtrace does not show the point of the crash, although frame #7 looks suspicious. This was also reported against Fedora: http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=238155
I have a theory on what might be causing this. See the Fedora bug (linked to in comment #2) for details.
Created attachment 87729 [details] [review] Possible patch If my theory proves correct, this patch should stop the reported crash. I'm unable to reproduce this crash on Evolution 2.8.0, but I can readily reproduce it on Evolution 2.10.1 by removing the "relative_uri" attribute from the "On My Computer" source group in my /apps/evolution/calendar/sources GConf key.
Chen: Can you revew this?
This should also be fixed in memos-component.c and tasks-component.c as well. Please commit the patch after including the changes in those files. The reason for the missing relative uri should still be identified and fixed.
Sure. Should we be checking for an absolute URI if the relative URI is missing? Not sure how that's intended to work.
Created attachment 88163 [details] [review] Proposed patch Actually I found this same logic error (not checking ESource URIs for NULL before passing them to strcmp()) in quite a number of places. Here's what grepping for "e_source_peek_relative_uri" and "e_source_peek_absolute_uri" turned up. There may more cases that I missed. Chen, since the scope of this patch has grown a little can you take another quick look at it? Still no idea why the relative URIs aren't present in the reporter's sources list to begin with. They could have been manually removed from GConf for all I know. That's how I reproduced the crash.
*** Bug 440241 has been marked as a duplicate of this bug. ***
Chen, ping. Do you mind if I commit the patch in comment #8 for 2.10.2?
(In reply to comment #10) > Chen, ping. Do you mind if I commit the patch in comment #8 for 2.10.2? > The patch looks good to commit. Just one thing, do we really need to have the g_assert statements ?
That's true, we don't really need it. e_source_peek_relative_uri() has a g_return_val_if_fail() guard on the argument, so it should recover fine if a source list element is somehow NULL. I guess I was being overly paranoid (I *was* debugging a NULL-pointer crash, after all). I'll remove the assertions before I commit. Any other concerns?
Nope, you can go ahead with committing the patch.
Committed to Subversion trunk (revision 33577).
*** Bug 445543 has been marked as a duplicate of this bug. ***
*** Bug 445738 has been marked as a duplicate of this bug. ***
*** Bug 446031 has been marked as a duplicate of this bug. ***