Selaa lähdekoodia

[Fix] Another effort to unbreak sqlite locking

tags/1.3.1
Vsevolod Stakhov 8 vuotta sitten
vanhempi
commit
7832d59918
1 muutettua tiedostoa jossa 13 lisäystä ja 1 poistoa
  1. 13
    1
      src/libutil/sqlite_utils.c

+ 13
- 1
src/libutil/sqlite_utils.c Näytä tiedosto

@@ -349,9 +349,21 @@ rspamd_sqlite3_open_or_create (rspamd_mempool_t *pool, const gchar *path, const
}

if (create && has_lock) {
if (sqlite3_exec (sqlite, sqlite_wal, NULL, NULL, NULL) != SQLITE_OK) {
while ((rc = sqlite3_exec (sqlite, sqlite_wal, NULL, NULL, NULL)) != SQLITE_OK) {
if (rc == SQLITE_BUSY) {
struct timespec sleep_ts = {
.tv_sec = 0,
.tv_nsec = 1000000
};

nanosleep (&sleep_ts, NULL);

continue;
}

msg_warn_pool_check ("WAL mode is not supported (%s), locking issues might occur",
sqlite3_errmsg (sqlite));
break;
}

if (sqlite3_exec (sqlite, exclusive_lock_sql, NULL, NULL, NULL) != SQLITE_OK) {

Loading…
Peruuta
Tallenna