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

Reply via email to