diff options
author | Nick Vatamaniuc <vatamane@apache.org> | 2020-07-13 11:07:55 -0400 |
---|---|---|
committer | Nick Vatamaniuc <nickva@users.noreply.github.com> | 2020-07-13 11:48:26 -0400 |
commit | 44eeee3414cafe8acbbcf028d5e67a00567df38d (patch) | |
tree | 81f58c1b0fd26e1484d9612568ab8fed96c2f551 | |
parent | 8c572bf45744e83c095fe56ffaf7a3c465bf16b9 (diff) | |
download | couchdb-44eeee3414cafe8acbbcf028d5e67a00567df38d.tar.gz |
Fix compactor bind_emsort clause
When compactor finds an old compaction file, before the state was upgraded to a
a proplist, the state will be `Root` from `emsort`, which is a `{BB, Prev}`
tuple not an integer.
-rw-r--r-- | src/couch/src/couch_bt_engine_compactor.erl | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/couch/src/couch_bt_engine_compactor.erl b/src/couch/src/couch_bt_engine_compactor.erl index 4bed49c7c..3e356e2e3 100644 --- a/src/couch/src/couch_bt_engine_compactor.erl +++ b/src/couch/src/couch_bt_engine_compactor.erl @@ -628,8 +628,9 @@ commit_compaction_data(#st{header = OldHeader} = St0, Fd) -> bind_emsort(St, Fd, nil) -> {ok, Ems} = couch_emsort:open(Fd), St#st{id_tree=Ems}; -bind_emsort(St, Fd, State) when is_integer(State) -> - bind_emsort(St, Fd, [{root, State}]); +bind_emsort(St, Fd, {BB, _} = Root) when is_list(BB) -> + % Upgrade clause when we find old compaction files + bind_emsort(St, Fd, [{root, Root}]); bind_emsort(St, Fd, State) -> {ok, Ems} = couch_emsort:open(Fd, State), St#st{id_tree=Ems}. |