diff options
| author | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2015-12-17 12:11:52 +0100 |
|---|---|---|
| committer | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2015-12-17 12:11:52 +0100 |
| commit | b8145384b262fcd788b2a5c3c844a713a5464f70 (patch) | |
| tree | 0c957740a1a9dbf227014e894d2ca3fcd37bcb35 /src/gm.erl | |
| parent | 8fddefcf6e6131211d382b66f6bed8229c6b4ea2 (diff) | |
| download | rabbitmq-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.erl | 4 |
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, |
