From: Vsevolod Stakhov Date: Mon, 29 Jun 2015 14:42:53 +0000 (+0100) Subject: Use WAL for fuzzy storage as well. X-Git-Tag: 1.0.0~483 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c6c53071887820bb7f96162658c884a5cb947a9b;p=thirdparty%2Frspamd.git Use WAL for fuzzy storage as well. --- diff --git a/src/libserver/fuzzy_backend.c b/src/libserver/fuzzy_backend.c index c59fa6133b..0cf2f8cfa9 100644 --- a/src/libserver/fuzzy_backend.c +++ b/src/libserver/fuzzy_backend.c @@ -377,6 +377,8 @@ rspamd_fuzzy_backend_open_db (const gchar *path, GError **err) { struct rspamd_fuzzy_backend *bk; sqlite3 *sqlite; + static const char sqlite_wal[] = "PRAGMA journal_mode=WAL;", + fallback_journal[] = "PRAGMA journal_mode=OFF;"; int rc; if ((rc = sqlite3_open_v2 (path, &sqlite, @@ -402,6 +404,11 @@ rspamd_fuzzy_backend_open_db (const gchar *path, GError **err) prepared_stmts[RSPAMD_FUZZY_BACKEND_COUNT].stmt, 0); } + if (sqlite3_exec (sqlite, sqlite_wal, NULL, NULL, NULL) != SQLITE_OK) { + msg_warn ("WAL mode is not supported, locking issues might occur"); + sqlite3_exec (sqlite, fallback_journal, NULL, NULL, NULL); + } + rspamd_fuzzy_backend_run_simple (RSPAMD_FUZZY_BACKEND_TRANSACTION_START, bk, NULL);