summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordu.net>2017-02-10 23:10:08 +0100
committerLinus Nordberg <linus@nordu.net>2017-02-10 23:10:43 +0100
commit98477712c0d9ed067f10a1e86c1276494f295fcf (patch)
tree7f8ccd9de7b658cbce66b528f591c5069810877a
parentdd7386a664cff92e52d3d991ecae118e7c094ff6 (diff)
Always load the tree before getting the root.load_tree
The case where this is necessary is when we have zero merge secondaries and thus no merge_backup processes loading the tree for us.
-rw-r--r--merge/src/merge_sth.erl9
1 files changed, 6 insertions, 3 deletions
diff --git a/merge/src/merge_sth.erl b/merge/src/merge_sth.erl
index 3dffaca..9e9486c 100644
--- a/merge/src/merge_sth.erl
+++ b/merge/src/merge_sth.erl
@@ -81,7 +81,7 @@ do_make_sth(Size) ->
%% verify both the new sth file against the signature and the new
%% root against ht before writing to disk.
NewTimestamp = plop:generate_timestamp(),
- NewRoot = ht:root(Size - 1),
+ NewRoot = root(Size),
PackedSignature = make_signature(NewTimestamp, Size, NewRoot),
ok = case plop:verify_sth(Size, NewTimestamp, NewRoot, PackedSignature) of
true ->
@@ -134,8 +134,7 @@ verified_size(Path) ->
end.
validate_tree_head(Treesize, Roothash) ->
- ht:load_tree(Treesize - 1),
- ok = case ht:root(Treesize - 1) of
+ ok = case root(Treesize) of
Roothash ->
ok;
RoothashInTree ->
@@ -155,3 +154,7 @@ read_sth_treesize() ->
true = plop:verify_sth(Treesize, Timestamp, RootHash, Signature),
Treesize
end.
+
+root(TreeSize) ->
+ ht:load_tree(TreeSize - 1),
+ ht:root(TreeSize - 1).