Hello I'm working on a CPE project where we use sqlite for configuration storage. We develop our own firmware which is based on uclibc and busybox.
We never had troubles with the sqlite-databases during the first 1.5 years (kernel 2.6.27 series, uclibc 0.9.30, busybox 1.14.1, sqlite up to 3.6.23). Some months ago we changed to uclibc-git (nptl support), kernel 2.6.32.X, busybox > 1.16 and at the moment sqlite 3.7.2. Each 30 minutes a backup of the config-database is made if there was a change. This is done using the SQLite Backup API. With the new version we have quite often (on different machines) the same strange behaviour: - sqlite3 /databasePath "PRAGMA integrity_check;" will give ok - a backup is made without an error showing up (directly through our own binary using the backup api or by using the ".backup" function of the sqlite3 command line tool. We always delete the destination file before doing the backup - checking the new database with PRAGMA integrity_check will give an error like: On page 26 at right child: invalid page number 954 On tree page 21 cell 0: invalid page number 956 I played a bit with a database that seems to be ok where the backup is always corrupted and can reproduce rather strange things: - "vaccum" the source database before doing the backup fixes the error - deleting a row from a table (no matter what table!) in the source database also fixes the error - "vaccum" the corrupted destination database also fixes the error Does anybody have some ideas what could be wrong here? Should I downgrade to a 3.6.X version? Maybe you will blame the git version of uclibc... I've to mention here that we run quite a lot of programs (some of them quite thread-oriented) on this platform without any troubles (samba, php, openvpn, asterisk and many others) and the uclibc-developers are discussing about making a 0.9.32 release based on this code during the next weeks. Best regards, Pirmin Walthert _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users