summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjiangphcn <jiangph@cn.ibm.com>2018-04-23 15:48:34 +0800
committerjiangphcn <jiangph@cn.ibm.com>2018-04-23 15:48:34 +0800
commit96560a1ed5b87f7e2b1ab5c5e67852d92f2747e5 (patch)
treee268a04404f48e1e0f450f0a6a4658f8ba1981bd
parent894accb667f4ccff6604d98c8a20087cc1ed1a18 (diff)
downloadcouchdb-test-cet_recompact_updates.tar.gz
Failed to re-visit btree after re-compactionarchive/test-cet_recompact_updatestest-cet_recompact_updates
Bugzid: 104903
-rw-r--r--src/couch/src/couch_bt_engine_compactor.erl7
-rw-r--r--src/couch/src/test_engine_util.erl10
2 files changed, 13 insertions, 4 deletions
diff --git a/src/couch/src/couch_bt_engine_compactor.erl b/src/couch/src/couch_bt_engine_compactor.erl
index 4e52064b4..577d6cdd7 100644
--- a/src/couch/src/couch_bt_engine_compactor.erl
+++ b/src/couch/src/couch_bt_engine_compactor.erl
@@ -54,6 +54,13 @@ start(#st{} = St, DbName, Options, Parent) ->
% and hope everything works out for the best.
unlink(DFd),
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ case couch_db:open_int(DbName, [?ADMIN_CTX]) of
+ {ok, Db} -> couch_db:close(Db);
+ Else -> throw(Else)
+ end,
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
NewSt1 = copy_purge_info(St, NewSt),
NewSt2 = copy_compact(DbName, St, NewSt1, Retry),
NewSt3 = sort_meta_data(NewSt2),
diff --git a/src/couch/src/test_engine_util.erl b/src/couch/src/test_engine_util.erl
index 89997538d..b2bfea85d 100644
--- a/src/couch/src/test_engine_util.erl
+++ b/src/couch/src/test_engine_util.erl
@@ -82,7 +82,8 @@ rootdir() ->
dbpath() ->
- binary_to_list(filename:join(rootdir(), couch_uuids:random())).
+ binary_to_list(filename:join(rootdir(),
+ list_to_binary("a" ++ binary_to_list(couch_uuids:random()) ++ ".couch"))).
get_engine() ->
@@ -565,8 +566,9 @@ list_diff([T1 | R1], [T2 | R2]) ->
compact(Engine, St1, DbPath) ->
- DbName = filename:basename(DbPath),
- {ok, St2, Pid} = Engine:start_compaction(St1, DbName, [], self()),
+ DbName1 = filename:basename(DbPath),
+ DbName2 = filename:rootname(DbName1),
+ {ok, St2, Pid} = Engine:start_compaction(St1, ?l2b(DbName2), [], self()),
Ref = erlang:monitor(process, Pid),
% Ideally I'd assert that Pid is linked to us
@@ -583,7 +585,7 @@ compact(Engine, St1, DbPath) ->
erlang:error(compactor_timed_out)
end,
- {ok, St2, DbName, Pid, Term}.
+ {ok, St2, DbName2, Pid, Term}.
with_config(Config, Fun) ->