diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2014-10-07 16:08:35 +0100 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2014-10-07 16:08:35 +0100 |
commit | 52e4635c2200b2b5acb1874271f00a27fea9f0f9 (patch) | |
tree | e70a73f06a7cff1034f62170c4dbcf55fffdf4f6 | |
parent | cce2494b91bdf4509e977665620faf759c47582f (diff) | |
parent | 5f4fedc084556a377235071c5c2801b27695f651 (diff) | |
download | rabbitmq-server-bug25739.tar.gz |
Merge in defaultbug25739
-rw-r--r-- | src/gm.erl | 7 | ||||
-rw-r--r-- | src/rabbit_mirror_queue_coordinator.erl | 2 |
2 files changed, 8 insertions, 1 deletions
@@ -975,7 +975,12 @@ store_view_member(VMember = #view_member { id = Id }, {Ver, View}) -> with_view_member(Fun, View, Id) -> store_view_member(Fun(fetch_view_member(Id, View)), View). -fetch_view_member(Id, {_Ver, View}) -> ?DICT:fetch(Id, View). +fetch_view_member(Id, {_Ver, View}) -> + case ?DICT:find(Id, View) of + {ok, M} -> M; + error -> timer:sleep(1000), + exit(normal) + end. find_view_member(Id, {_Ver, View}) -> ?DICT:find(Id, View). diff --git a/src/rabbit_mirror_queue_coordinator.erl b/src/rabbit_mirror_queue_coordinator.erl index 3d460528..546fe8b7 100644 --- a/src/rabbit_mirror_queue_coordinator.erl +++ b/src/rabbit_mirror_queue_coordinator.erl @@ -357,6 +357,8 @@ handle_cast({gm_deaths, DeadGMPids}, rabbit_mirror_queue_misc:report_deaths(MPid, true, QueueName, DeadPids), noreply(State); + {ok, MPid2, DeadPids} -> + {stop, normal, State}; {error, not_found} -> {stop, normal, State} end; |