summaryrefslogtreecommitdiff
path: root/src/gm.erl
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2015-12-17 12:11:52 +0100
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2015-12-17 12:11:52 +0100
commitb8145384b262fcd788b2a5c3c844a713a5464f70 (patch)
tree0c957740a1a9dbf227014e894d2ca3fcd37bcb35 /src/gm.erl
parent8fddefcf6e6131211d382b66f6bed8229c6b4ea2 (diff)
downloadrabbitmq-server-git-b8145384b262fcd788b2a5c3c844a713a5464f70.tar.gz
GM: Ignore 'DOWN' when the ring is going down
This is a follow-up commit to ed276656. This fixes the following crash: =ERROR REPORT==== 18-Oct-2015::00:51:30 === ** Generic server <0.966.0> terminating ** Last message in was {'DOWN',#Ref<0.0.3.4250>,process,<21148.716.0>, shutdown} ** When Server state == {state, ... {true,{shutdown,ring_shutdown}}} ** Reason for termination == ** {function_clause,[{orddict,fetch, [{1,<0.966.0>},[]], [{file,"orddict.erl"},{line,80}]}, {gm,check_neighbours,1,[{file,"src/gm.erl"},{line,1243}]}, Submitted by Alvaro Videla (@videlalvaro). Fixes #368.
Diffstat (limited to 'src/gm.erl')
-rw-r--r--src/gm.erl4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gm.erl b/src/gm.erl
index cabbb9420b..61a8f3eef7 100644
--- a/src/gm.erl
+++ b/src/gm.erl
@@ -713,6 +713,10 @@ handle_info(flush, State) ->
handle_info(timeout, State) ->
noreply(flush_broadcast_buffer(State));
+handle_info({'DOWN', _MRef, process, _Pid, _Reason},
+ State = #state { shutting_down =
+ {true, {shutdown, ring_shutdown}} }) ->
+ noreply(State);
handle_info({'DOWN', MRef, process, _Pid, Reason},
State = #state { self = Self,
left = Left,