diff --git a/src/leveled_bookie.erl b/src/leveled_bookie.erl index d12687c..db69a7e 100644 --- a/src/leveled_bookie.erl +++ b/src/leveled_bookie.erl @@ -1511,11 +1511,11 @@ hashtree_query_test() -> ?STD_TAG, false}), KeyHashList = HTFolder(), - lists:foreach(fun({B, _K, H}) -> - ?assertMatch("Bucket", B), - ?assertMatch(true, is_integer(H)) - end, - KeyHashList), + lists:foreach(fun({B, _K, H}) -> + ?assertMatch("Bucket", B), + ?assertMatch(true, is_integer(H)) + end, + KeyHashList), ?assertMatch(1200, length(KeyHashList)), ok = book_close(Bookie1), {ok, Bookie2} = book_start([{root_path, RootPath}, diff --git a/src/leveled_codec.erl b/src/leveled_codec.erl index 1d2bc13..9179687 100644 --- a/src/leveled_codec.erl +++ b/src/leveled_codec.erl @@ -445,8 +445,11 @@ build_metadata_object(PrimaryKey, MD) -> riak_extract_metadata(delete, Size) -> {delete, null, null, Size}; riak_extract_metadata(ObjBin, Size) -> - {Vclock, SibBin} = riak_metadata_from_binary(ObjBin), - {SibBin, Vclock, erlang:phash2(ObjBin), Size}. + {VclockBin, SibBin} = riak_metadata_from_binary(ObjBin), + {SibBin, + VclockBin, + erlang:phash2(lists:sort(binary_to_term(VclockBin))), + Size}. %% <>. diff --git a/test/end_to_end/recovery_SUITE.erl b/test/end_to_end/recovery_SUITE.erl index ccca1ea..778e036 100644 --- a/test/end_to_end/recovery_SUITE.erl +++ b/test/end_to_end/recovery_SUITE.erl @@ -80,7 +80,7 @@ recovr_strategy(_Config) -> Q = fun(RT) -> {index_query, "Bucket6", {fun testutil:foldkeysfun/3, []}, - {"idx1_bin", "#", "~"}, + {"idx1_bin", "#", "|"}, {RT, undefined}} end, {async, TFolder} = leveled_bookie:book_returnfolder(Book1, Q(true)), @@ -205,8 +205,12 @@ aae_bustedjournal(_Config) -> % Will need to remove the file or corrupt the hashtree to get presence to % fail - FoldObjectsFun = fun(B, K, V, Acc) -> [{B, K, erlang:phash2(V)}|Acc] - end, + FoldObjectsFun = + fun(B, K, V, Acc) -> + VC = testutil:get_vclock(V), + H = erlang:phash2(lists:sort(VC)), + [{B, K, H}|Acc] + end, SW = os:timestamp(), {async, HashTreeF3} = leveled_bookie:book_returnfolder(Bookie2, {foldobjects_allkeys,