summaryrefslogtreecommitdiff
path: root/src/gm.erl
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-10-20 20:57:13 +0100
committerSimon MacMullen <simon@rabbitmq.com>2014-10-20 20:57:13 +0100
commit50c3620242aba4aafd19ce16edbdc1faefb745a5 (patch)
tree46a115a42696991397e94453f0cd8e8cec971fc5 /src/gm.erl
parent183a1ab479d409db0e9ffdcbd6e9ee7422b0b119 (diff)
downloadrabbitmq-server-git-50c3620242aba4aafd19ce16edbdc1faefb745a5.tar.gz
Sleep briefly, and explain why.
Diffstat (limited to 'src/gm.erl')
-rw-r--r--src/gm.erl8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gm.erl b/src/gm.erl
index 6c09e66417..636e63e4b7 100644
--- a/src/gm.erl
+++ b/src/gm.erl
@@ -720,6 +720,14 @@ handle_info({'DOWN', MRef, process, _Pid, Reason},
{_, {shutdown, ring_shutdown}} ->
noreply(State);
_ ->
+ %% In the event of a partial partition we could see another member
+ %% go down and then remove them from Mnesia. While they can
+ %% recover from this they'd have to restart the queue - not
+ %% ideal. So let's sleep here briefly just in case this was caused
+ %% by a partial partition; in which case by the time we record the
+ %% member death in Mnesia we will probably be in a full
+ %% partition and will not be assassinating another member.
+ timer:sleep(100),
View1 = group_to_view(record_dead_member_in_group(
Member, GroupName, TxnFun)),
handle_callback_result(