Hello,
I have sqlite code amalgamation(version 3.6.14.2.) as a part of a dylib/dll.
As part of exported apis from this dylib we open a sql session/connection
and keep it open for a longish duration and share the session handle among
different threads of the same process for doing transactions on the DB.
We do not use any other locks for transaction synchronization on the DB
apart from the default ones being used in the sqlite amalgamation code.

Different versions of this dylib could be used by multiple processes to
access/perform-transactions on the same DB file at the same time.

The DB generally is a small one with hardly 9-10 entries present at any
time at max, though it does lot of over-wrties/re-writes.

Off-late I am observing transaction failures(though the frequency is quite
less) with error as: disk image of the DB being malformed and on running
integrity_check it reports following (2 of cases mentioned below)

sqlite> pragma integrity_check;
*** in database main ***
Main freelist: freelist leaf count too big on page 9
On tree page 2 cell 0: 2 of 3 pages missing from overflow list starting at
10
Page 11 is never used
Page 12 is never used
sqlite> .exit
.....
.....
sqlite> pragma integrity_check;
*** in database main ***
On tree page 11 cell 0: 1 of 2 pages missing from overflow list starting at
9
Page 10 is never used
sqlite>


Any idea if the usage above mentioned has a significant flaw.
I highly appreciate any help on what could be causing the issue and further
directions to probe on and avoid the issue.

Thanks,
Dhiraj
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to