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 | 2e865618ac8c764b9c1765f49bd058764015cf9b (patch) | |
tree | 1983e7ab42cc48f60b00b8b1b6422ae996af7404 | |
parent | dbd5a1f0e252aca4eb22173772bec3d5b827fc17 (diff) | |
download | rabbitmq-server-2e865618ac8c764b9c1765f49bd058764015cf9b.tar.gz |
blank members_state before maybe_erase_aliasesbug26084
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.
-rw-r--r-- | src/gm.erl | 13 |
1 files changed, 6 insertions, 7 deletions
@@ -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. |