google_addressbook icon indicating copy to clipboard operation
google_addressbook copied to clipboard

Handling of locked databases

Open mjnewton opened this issue 4 years ago • 0 comments

Since moving from mysql to sqlite3 I have been occasionally getting the following errors when running sync-cli.sh via cron:

ERROR: [5] database is locked (SQL Query: INSERT INTO "contacts_google" ("user_id", "changed", "del", "vcard", "name", "firstname", "surname", "email", "words") VALUES (14, datetime('now'), 0, 'BEGIN:VCARD [...]

I am led to believe that sqlite doesn't support multiple concurrent access with it being file based and so presumably that's what the issue is (and, specifically, that Roundcube happens to have the database locked at the time)?

I could pipe all errors to /dev/null but I'd like to know about others ('genuine' ones, if you see what I mean) that might occur. Is there any way the sync-cli.sh script could detect a locked database and handle the situation differently - perhaps retrying or backing off momentarily, if that's what required?

mjnewton avatar Apr 24 '21 11:04 mjnewton