diff --git a/src/leveled_log.erl b/src/leveled_log.erl index 358a820..6015070 100644 --- a/src/leveled_log.erl +++ b/src/leveled_log.erl @@ -26,6 +26,8 @@ {"G0001", {info, "Generic log point"}}, + {"G0002", + {info, "Generic log point with term ~w"}}, {"D0001", {debug, "Generic debug log"}}, @@ -133,6 +135,8 @@ {info, "Garbage collection on manifest removes key for filename ~s"}}, {"P0037", {info, "Merging of penciller L0 tree to size ~w complete"}}, + {"P0038", + {info, "Bad record when closing manifest ~w"}}, {"PC001", {info, "Penciller's clerk ~w started with owner ~w"}}, @@ -351,7 +355,10 @@ log_timer(LogReference, Subs, StartTime) -> end. log_randomtimer(LogReference, Subs, StartTime, RandomProb) -> - case random:uniform() < RandomProb of + {R, _S} = random:uniform_s({erlang:phash2(self()), + element(2, StartTime), + element(3, StartTime)}), + case R < RandomProb of true -> log_timer(LogReference, Subs, StartTime); false -> diff --git a/src/leveled_penciller.erl b/src/leveled_penciller.erl index b5e8fea..2389f51 100644 --- a/src/leveled_penciller.erl +++ b/src/leveled_penciller.erl @@ -595,7 +595,13 @@ terminate(Reason, State) -> % Tidy shutdown of individual files EntryCloseFun = fun(ME) -> - ok = leveled_sst:sst_close(ME#manifest_entry.owner) + case is_record(ME, manifest_entry) of + true -> + ok = leveled_sst:sst_close(ME#manifest_entry.owner); + false -> + {_SK, ME0} = ME, + ok = leveled_sst:sst_close(ME0#manifest_entry.owner) + end end, leveled_pmanifest:close_manifest(State#state.manifest, EntryCloseFun), leveled_log:log("P0011", []),