about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--externals/Makefile.am6
-rw-r--r--src/libstore/db.cc4
2 files changed, 6 insertions, 4 deletions
diff --git a/externals/Makefile.am b/externals/Makefile.am
index 126d656e55..d4a5189f9e 100644
--- a/externals/Makefile.am
+++ b/externals/Makefile.am
@@ -1,11 +1,11 @@
 # Berkeley DB
 
-DB = db-4.3.28.NC
+DB = db-4.4.16.NC
 
 $(DB).tar.gz:
 	@echo "Nix requires Berkeley DB to build."
-	@echo "Please download version 4.3.28 from"
-	@echo "  http://downloads.sleepycat.com/db-4.3.28.NC.tar.gz"
+	@echo "Please download version 4.4.16 from"
+	@echo "  http://downloads.sleepycat.com/db-4.4.16.NC.tar.gz"
 	@echo "and place it in the externals/ directory."
 	false
 
diff --git a/src/libstore/db.cc b/src/libstore/db.cc
index a0b1c16cd8..2c925134aa 100644
--- a/src/libstore/db.cc
+++ b/src/libstore/db.cc
@@ -306,11 +306,13 @@ void Database::open(const string & path)
 
             /* Try again. */
             open2(path, false);
+
+            /* Force a checkpoint, as per the BDB docs. */
+            env->txn_checkpoint(DB_FORCE, 0, 0);
         }
         else
             rethrow(e);
     }
-    
 }