Hello.

We're trying to use sqlite on an embedded linux with one process regularly 
writing entries in a db and another process removing the entries by batch.
It works fine on the first boot, however after stopping and relauching the 
processes I start to get errors on all sides: the reader gets disks IO errors, 
and the writer produces errors 1032 SQLITE_READONLY_DBMOVED, which confuses me 
because I never ever move the db file.

I checked with ls -l in /proc/<pid>/fd/ for the writer and indeed the only open 
fd (except std{in,out,err}) says "/path/to/db (deleted)", however there still 
is a file at this path, indicating that the inode opened by sqlite is another 
one than the inode this path points to at that moment.

At this point I'm puzzled.
Does sqlite moves files around by itself? Do I need to take particular 
precautions when opening a db with two processes at the same time?

Regards,
L?o Gillot-Lamure.

Reply via email to