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.
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).