diff options
author | jiangphcn <jiangph@cn.ibm.com> | 2018-04-23 15:48:34 +0800 |
---|---|---|
committer | jiangphcn <jiangph@cn.ibm.com> | 2018-04-23 15:48:34 +0800 |
commit | 96560a1ed5b87f7e2b1ab5c5e67852d92f2747e5 (patch) | |
tree | e268a04404f48e1e0f450f0a6a4658f8ba1981bd | |
parent | 894accb667f4ccff6604d98c8a20087cc1ed1a18 (diff) | |
download | couchdb-96560a1ed5b87f7e2b1ab5c5e67852d92f2747e5.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.erl | 7 | ||||
-rw-r--r-- | src/couch/src/test_engine_util.erl | 10 |
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) -> |