GNOME Bugzilla – Bug 575084
Crashes with SQLite upgrade from 3.5.x to 3.6.x
Last modified: 2009-07-15 05:34:41 UTC
What were you doing when the application crashed? Starting evolution (triggered upgrade to sqlite as of switch from 2.22 to 2.24.1). WIth a lot of errors on the console from the migration: (evolution:13165): Gtk-CRITICAL **: gtk_progress_set_percentage: assertion `percentage >= 0 && percentage <= 1.0' failed (evolution:13165): Gtk-CRITICAL **: gtk_progress_set_percentage: assertion `percentage >= 0 && percentage <= 1.0' failed (evolution:13165): Gtk-CRITICAL **: gtk_progress_set_percentage: assertion `percentage >= 0 && percentage <= 1.0' failed (evolution:13165): Gtk-CRITICAL **: gtk_progress_set_percentage: assertion `percentage >= 0 && percentage <= 1.0' failed (evolution:13165): Gtk-CRITICAL **: gtk_progress_set_percentage: assertion `percentage >= 0 && percentage <= 1.0' failed (evolution:13165): Gtk-CRITICAL **: gtk_progress_set_percentage: assertion `percentage >= 0 && percentage <= 1.0' failed (evolution:13165): Gtk-CRITICAL **: gtk_progress_set_percentage: assertion `percentage >= 0 && percentage <= 1.0' failed (evolution:13165): Gtk-CRITICAL **: gtk_progress_set_percentage: assertion `percentage >= 0 && percentage <= 1.0' failed (evolution:13165): Gtk-CRITICAL **: gtk_progress_set_percentage: assertion `percentage >= 0 && percentage <= 1.0' failed (evolution:13165): Gtk-CRITICAL **: gtk_progress_set_percentage: assertion `percentage >= 0 && percentage <= 1.0' failed (evolution:13165): camel-WARNING **: No summary path set. Unable to migrate (evolution:13165): camel-WARNING **: No summary path set. Unable to migrate (evolution:13165): camel-WARNING **: No summary path set. Unable to migrate (evolution:13165): camel-WARNING **: No summary path set. Unable to migrate (evolution:13165): camel-WARNING **: No summary path set. Unable to migrate (evolution:13165): camel-WARNING **: No summary path set. Unable to migrate (evolution:13165): camel-WARNING **: No summary path set. Unable to migrate em-migrate.c:3012:migrate_to_db: failed to get folder infos (evolution:13165): camel-imap-provider-WARNING **: Unable to load summary no such table: Drafts (evolution:13165): camel-imap-provider-WARNING **: Unable to load summary no such table: INBOX (...) (evolution:13165): camel-imap-provider-WARNING **: Unable to load summary no such table: Trash (evolution:13165): camel-WARNING **: No summary path set. Unable to migrate (evolution:13165): camel-WARNING **: No summary path set. Unable to migrate addressbook_migrate (2.22.0) ** (evolution:13165): DEBUG: mailto URL command: evolution %s ** (evolution:13165): DEBUG: mailto URL program: evolution (evolution:13165): evolution-mail-WARNING **: VFolder of VFolders not supporting. Ignoring loading this vfolder as a subfolder (evolution:13165): evolution-mail-WARNING **: Failed to refresh folders: Impossible d'obtenir le dossier « /home/prahal/Mail/debian » : ce n'est pas un répertoire Maildir. e-data-server-ui-Message: Received a password from keyring 'default'. But looking for the password from 'login' keyring Distribution: Debian squeeze/sid Gnome Release: 2.24.2 2009-01-04 (Debian) BugBuddy Version: 2.24.2 System: Linux 2.6.29-rc7-00003-g559595a #51 SMP Mon Mar 9 08:57:50 CET 2009 i686 X Vendor: The X.Org Foundation X Vendor Release: 10599902 Selinux: Permissive Accessibility: Disabled GTK+ Theme: Clearlooks Icon Theme: yasis Memory status: size: 370573312 vsize: 370573312 resident: 94134272 share: 22224896 rss: 94134272 rss_rlim: 18446744073709551615 CPU usage: start_time: 1236865565 rtime: 9144 utime: 7223 stime: 1921 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100 Backtrace was generated from '/usr/bin/evolution' [Thread debugging using libthread_db enabled] [New Thread 0xa4dffb90 (LWP 15208)] [New Thread 0xa8f6eb90 (LWP 15207)] [New Thread 0xa6f6ab90 (LWP 15133)] [New Thread 0xa6769b90 (LWP 15061)] [New Thread 0xaa771b90 (LWP 15009)] [New Thread 0xa9f70b90 (LWP 15007)] 0xffffe424 in __kernel_vsyscall ()
+ Trace 213418
Thread 2 (Thread 0xa4dffb90 (LWP 15208))
----------- .xsession-errors (154691 sec old) --------------------- ERROR: Couldn't attach to DCOP server! ERROR: Couldn't attach to DCOP server! ERROR: Couldn't attach to DCOP server! ERROR: Couldn't attach to DCOP server! ERROR: Couldn't attach to DCOP server! ERROR: Couldn't attach to DCOP server! ERROR: Couldn't attach to DCOP server! ERROR: Couldn't attach to DCOP server! ERROR: Couldn't attach to DCOP server! ERROR: Couldn't attach to DCOP server! ERROR: Couldn't attach to DCOP server! ERROR: Couldn't attach to DCOP server! ERROR: Couldn't attach to DCOP server! ERROR: Couldn't attach to DCOP server! ...Too much output, ignoring rest... --------------------------------------------------
Note that the issue is fixed by downgrading sqlite3 from 3.6.10 to 3.5.9.
I think it's "fixed" only because it didn't migrate again. Or did it migrate again for you next start? Please note that the migration code had been improved since 2.24.1, I would recommend you to upgrade to the latest 2.24.5, or even better 2.26.0.
Unfortunately 2.24.5 shows the same issue here on my Debian Sid box. Evolution crashes in random situations (usually during exit). The next start then directly triggers a segmentation fault [1][2][3] (so I think the backtrace provided in [3] is probably only partially helpful). I have some saved states of my .evolution folder and working a bit with evolution (removing some messages and changing the ordering of folders) then usually leads to a crash then leading to the segmentation fault when trying to start evolution. I will try to provide a backtrace. The combination of sqlite3 3.6.10 and evolution 2.24.x is really unstable (at least on my box). [1] http://bugs.debian.org/519428 [2] http://bugs.debian.org/521752 [3] http://bugs.debian.org/521608
Aah, I think I got it, from the [3] above. The reason is the API changed in SQLite. Evolution-Data-Server is checking SQLite version in compile time, and even it doesn't link to it statically, it uses a function signature by the version obtained during compile.
Created attachment 131730 [details] [review] proposed eds patch for evolution-data-server; Check for actual SQLite3 version in runtime to call xCheckReservedLock with correct number parameters as expected by the actual SQLite3 version it is running, not was compiled. Quite hacky, though. SQLite3 documentation is quite strict about compiled and running versions.
(In reply to comment #5) > Quite hacky, though. Yeah, that’s scary. I’d say we should just bump the build-time requirement on sqlite3 to 3.6 and get rid of the 3.5, instead.
*** Bug 577189 has been marked as a duplicate of this bug. ***
*** Bug 577069 has been marked as a duplicate of this bug. ***
Josselin, we can ask for version bump in 2.27 cycle. But till then, we can take the patch in
Committed to trunk. Committed revision 10199.
*** Bug 577198 has been marked as a duplicate of this bug. ***
I will be sending a mail to the release-team on it today. So to confirm on the reasons for the version bump. 1) Api change in xCheckReservedLock method. 2) Most of the distributions have sqlite 3.6 Milan, I hope you have tested evolution against 3.6 and find that its functioning properly. Am I missing anything else ?
*** Bug 579916 has been marked as a duplicate of this bug. ***