No catch'ed in server ets lookups
diff --git a/src/couch_stats/src/couch_stats_resource_tracker.erl b/src/couch_stats/src/couch_stats_resource_tracker.erl
index 6924d69..bdedd81 100644
--- a/src/couch_stats/src/couch_stats_resource_tracker.erl
+++ b/src/couch_stats/src/couch_stats_resource_tracker.erl
@@ -913,7 +913,16 @@
 get_resource(undefined) ->
     undefined;
 get_resource(PidRef) ->
-    catch case ets:lookup(?MODULE, PidRef) of
+    catch get_resource_int(PidRef).
+
+
+get_resource_int() ->
+    get_resource_int(get_pid_ref()).
+
+get_resource_int(undefined) ->
+    undefined;
+get_resource_int(PidRef) ->
+    case ets:lookup(?MODULE, PidRef) of
         [#rctx{}=TP] ->
             TP;
         [] ->
@@ -1043,7 +1052,7 @@
             drop_monitor(MonRef),
             maps:remove(MonRef, maps:remove(PidRef, AT0))
     end,
-    ets:update_element(?MODULE, PidRef,
+    should_scan() andalso ets:update_element(?MODULE, PidRef,
         [{#rctx.state, {down, Reason}}, {#rctx.updated_at, tnow()}]),
     log_process_lifetime_report(PidRef),
     %% Delay eviction to allow human visibility on short lived pids
@@ -1083,22 +1092,24 @@
     end,
     maybe_track(PidRefs, AT1).
 
-log_process_lifetime_report(PidRef) ->
-    is_enabled() andalso log_process_lifetime_report(PidRef, get_resource(PidRef)).
 
-log_process_lifetime_report(_PidRef, undefined) ->
-    ok;
-log_process_lifetime_report(_PidRef, #rctx{} = Rctx) ->
+log_process_lifetime_report(PidRef) ->
     %% TODO: catch error out of here, report crashes on depth>1 json
     %%io:format("CSRT RCTX: ~p~n", [to_flat_json(Rctx)]),
-    case is_enabled() andalso should_log(Rctx) of
+    %% TODO: clean this up
+    case is_enabled() andalso is_logging_enabled() of
         true ->
-            couch_log:report("csrt-pid-usage-lifetime", to_flat_json(Rctx));
+            Rctx = get_resource_int(PidRef),
+            should_log(Rctx) andalso
+                couch_log:report("csrt-pid-usage-lifetime", to_flat_json(Rctx));
         false ->
             ok
     end.
 
 
+is_logging_enabled() ->
+    logging_enabled() =/= false.
+
 logging_enabled() ->
     case conf_get("log_pid_usage_report", "coordinator") of
         "coordinator" ->