Quote:
Originally Posted by ShellShock
The _localize_database_path function in the IOS reader plugin copies the mainDB.sqlite from the idevice to the above temporary file on your PC. I suspect that this copy operation is buggy, e.g., it could be reading the file whilst it is still open in Marvin on the device, or it could still be writing the file to your Windows disk when the plugin tries to query it as a SQLLite database. The more books you have, the bigger the database and the more critical timings become.
|
Based on my experience on Windows and Android with SQLite, if you are actually copying the file from the iDevice's "disc" then there are several things that could go wrong if Marvin is running and the DB is open. First would be the possibility of an auto-reorganize, where the DB layer decides to compact the DB or update indices. Second could be the use of in-memory journals, meaning the db file doesn't contain the real db from time to time. SQLite can use write-behind updates. Usually SQLite supports read-only or read-write, and almost no app will switch between these because opening the DB is too expensive.
If at all possible you should get Marvin to make the copy for you, then upload that copy. That way Marvin could close the DB (which would apply all updates etc), copy the file, then re-open it. I don't know if you want to write the DB back to Marvin, but if you do then you should do the same thing in reverse: copy the file back to the iDevice then ask Marvin to replace its DB with the copy.