summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2014-04-23 18:37:13 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2014-04-23 18:37:13 +0100
commita9cc4a35ce8eb34a1715478d6911f49f393e1cbc (patch)
tree1983e7ab42cc48f60b00b8b1b6422ae996af7404 /src
parent6da64f0957d5424f8bf7277f9a693783f40c1584 (diff)
downloadrabbitmq-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.erl13
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.