Resolve failing recovery test

Now passing consistently with a number of different corruptions catered
for (including corruption of the Tag in the Inker Key)
This commit is contained in:
martinsumner 2016-12-16 23:18:55 +00:00
parent 1684f0a913
commit 9e28287231
5 changed files with 66 additions and 29 deletions

View file

@ -218,13 +218,18 @@ compact_inkerkvc({{SQN, ?INKT_KEYD, LK}, V, CrcCheck}, Strategy) ->
end;
compact_inkerkvc({{SQN, ?INKT_STND, LK}, V, CrcCheck}, Strategy) ->
{Tag, _, _, _} = LK,
{Tag, TagStrat} = lists:keyfind(Tag, 1, Strategy),
case TagStrat of
retain ->
{_V, KeyDeltas} = split_inkvalue(V),
{TagStrat, {{SQN, ?INKT_KEYD, LK}, {null, KeyDeltas}, CrcCheck}};
TagStrat ->
{TagStrat, null}
case lists:keyfind(Tag, 1, Strategy) of
{Tag, TagStrat} ->
case TagStrat of
retain ->
{_V, KeyDeltas} = split_inkvalue(V),
{TagStrat, {{SQN, ?INKT_KEYD, LK}, {null, KeyDeltas}, CrcCheck}};
TagStrat ->
{TagStrat, null}
end;
false ->
leveled_log:log("IC012", [Tag, Strategy]),
skip
end;
compact_inkerkvc(_KVC, _Strategy) ->
skip.