summaryrefslogtreecommitdiff
path: root/src/couchdb
diff options
context:
space:
mode:
Diffstat (limited to 'src/couchdb')
-rw-r--r--src/couchdb/couch_db.erl13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/couchdb/couch_db.erl b/src/couchdb/couch_db.erl
index 8d671ea2..2f5df3b5 100644
--- a/src/couchdb/couch_db.erl
+++ b/src/couchdb/couch_db.erl
@@ -568,16 +568,17 @@ update_loop(#db{fd=Fd,name=Name,
init_db(Name, CompactFilepath, NewFd, NewHeader),
case Db#db.update_seq == NewSeq of
true ->
+ NewDb2 = commit_data(
+ NewDb#db{
+ main_pid = Db#db.main_pid,
+ doc_count = Db#db.doc_count,
+ doc_del_count = Db#db.doc_del_count,
+ filepath = Filepath}),
+
?LOG_DEBUG("CouchDB swapping files ~s and ~s.", [Filepath, CompactFilepath]),
ok = file:rename(Filepath, Filepath ++ ".old"),
ok = file:rename(CompactFilepath, Filepath),
- NewDb2 = NewDb#db{
- main_pid = Db#db.main_pid,
- doc_count = Db#db.doc_count,
- doc_del_count = Db#db.doc_del_count,
- filepath = Filepath},
-
couch_stream:close(Db#db.summary_stream),
% close file handle async.
% wait 5 secs before closing, allowing readers to finish