]> git.saurik.com Git - redis.git/commitdiff
When closing the MDB DBI, do it in a transaction.
authorJay Freeman (saurik) <saurik@saurik.com>
Sun, 23 Dec 2012 09:32:48 +0000 (09:32 +0000)
committerJay Freeman (saurik) <saurik@saurik.com>
Sun, 23 Dec 2012 09:32:48 +0000 (09:32 +0000)
src/migrate.c

index 6d8aad7f5c48f5b5c10705ef4c376a74c99db9e1..05a48a228fe33574d84c940c0533166af238bbaa 100644 (file)
@@ -255,7 +255,15 @@ socket_rd_err:
 void stopKeyArchive(void) {
     redisAssert(env != NULL);
 
-    mdb_dbi_close(env, dbi);
+    MDB_txn *txn;
+    int ret = mdb_txn_begin(env, NULL, 0, &txn);
+    if (ret != 0)
+        mdb_txn_abort(txn);
+    else {
+        mdb_dbi_close(env, dbi);
+        mdb_txn_commit(txn);
+    }
+
     mdb_env_close(env);
     env = NULL;