From ffcd577f83edc5e498fa0a143dafcb03ed7f9c10 Mon Sep 17 00:00:00 2001 From: Martin Sumner Date: Wed, 13 Mar 2019 21:19:32 +0000 Subject: [PATCH] Update leveled_penciller.erl Sometimes when testing (especially with coverage), the sst file is not alive when it is to be closed. Check it is alive before closing. --- src/leveled_penciller.erl | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/leveled_penciller.erl b/src/leveled_penciller.erl index 98b849b..666b25f 100644 --- a/src/leveled_penciller.erl +++ b/src/leveled_penciller.erl @@ -1210,7 +1210,7 @@ shutdown_manifest(Manifest, L0Constructor) -> end end, ok = - case is_pid(Owner) of + case check_alive(Owner) of true -> leveled_sst:sst_close(Owner); false -> @@ -1221,6 +1221,15 @@ shutdown_manifest(Manifest, L0Constructor) -> EntryCloseFun(L0Constructor). +-spec check_alive(pid()|undefined) -> boolean(). +%% @doc +%% Double-check a processis active before attempting to terminate +check_alive(Owner) when is_pid(Owner) -> + is_process_alive(Owner); +check_alive(_Owner) -> + false. + + -spec archive_files(list(), list()) -> ok. %% @doc %% Archive any sst files in the folder that have not been used to build the