summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <mklishin@pivotal.io>2019-09-24 00:51:29 +0300
committerGitHub <noreply@github.com>2019-09-24 00:51:29 +0300
commita47866ae47f9f75fd711ef7d52bab0784a8597d8 (patch)
tree1d0aa038781d0b02bd0c5a297e0136cb1c57f289
parent1250791f879f28cdf7ce265bb6ec20cee0a8ef54 (diff)
parentdd36f26d434389d22ff718d55a7ddc80acae9811 (diff)
downloadrabbitmq-server-git-a47866ae47f9f75fd711ef7d52bab0784a8597d8.tar.gz
Merge pull request #2117 from jeckersb/binary_refs_race
rabbit_diagnostics: handle race in binary_refs
-rw-r--r--src/rabbit_diagnostics.erl9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/rabbit_diagnostics.erl b/src/rabbit_diagnostics.erl
index c3f515d3e7..d05401b6bf 100644
--- a/src/rabbit_diagnostics.erl
+++ b/src/rabbit_diagnostics.erl
@@ -94,9 +94,12 @@ top_binary_refs(Count) ->
io:format("~s ~p~n", [get_time(), Sorted]).
binary_refs(Pid) ->
- {binary, Refs} = info(Pid, binary, []),
- lists:sum([Sz || {_Ptr, Sz} <- lists:usort([{Ptr, Sz} ||
- {Ptr, Sz, _Cnt} <- Refs])]).
+ case info(Pid, binary, []) of
+ {binary, Refs} ->
+ lists:sum([Sz || {_Ptr, Sz} <- lists:usort([{Ptr, Sz} ||
+ {Ptr, Sz, _Cnt} <- Refs])]);
+ _ -> 0
+ end.
info(Pid) ->
[{pid, Pid} | info(Pid, ?PROCESS_INFO, [])].