diff options
| author | Matthias Radestock <matthias@rabbitmq.com> | 2014-04-23 18:37:13 +0100 |
|---|---|---|
| committer | Matthias Radestock <matthias@rabbitmq.com> | 2014-04-23 18:37:13 +0100 |
| commit | a9cc4a35ce8eb34a1715478d6911f49f393e1cbc (patch) | |
| tree | 1983e7ab42cc48f60b00b8b1b6422ae996af7404 /src | |
| parent | 6da64f0957d5424f8bf7277f9a693783f40c1584 (diff) | |
| download | rabbitmq-server-git-a9cc4a35ce8eb34a1715478d6911f49f393e1cbc.tar.gz | |
blank members_state before maybe_erase_aliases
thus reverting b01e5808866d
We are the only member left. So our usual alias erasure condition of
"acks = pubs" needs to go since otherwise erasure could be deferred
indefintely, waiting for acks to arrive that never will. Blanking the
members_state effectively sets acks = pubs for all aliases, thus
enabling their unconditional erasure.
Diffstat (limited to 'src')
| -rw-r--r-- | src/gm.erl | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/gm.erl b/src/gm.erl index acc9444706..0c0ac349b0 100644 --- a/src/gm.erl +++ b/src/gm.erl @@ -711,13 +711,12 @@ handle_info({'DOWN', MRef, process, _Pid, Reason}, Member, GroupName, TxnFun)), handle_callback_result( case alive_view_members(View1) of - [Self] -> - {Result, State1} = maybe_erase_aliases(State, View1), - {Result, State1 #state { - members_state = blank_member_state(), - confirms = purge_confirms(Confirms) }}; - _ -> - change_view(View1, State) + [Self] -> maybe_erase_aliases( + State #state { + members_state = blank_member_state(), + confirms = purge_confirms(Confirms) }, + View1); + _ -> change_view(View1, State) end) end. |
