From 71c09ce78f72877f3fc9c9fea5f12779830a9ae4 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 29 Jun 2015 15:42:53 +0100 Subject: [PATCH] Use WAL for fuzzy storage as well. --- src/libserver/fuzzy_backend.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libserver/fuzzy_backend.c b/src/libserver/fuzzy_backend.c index c59fa6133..0cf2f8cfa 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); -- 2.39.5