diff options
| author | Matthew Sackman <matthew@rabbitmq.com> | 2011-03-14 16:56:52 +0000 |
|---|---|---|
| committer | Matthew Sackman <matthew@rabbitmq.com> | 2011-03-14 16:56:52 +0000 |
| commit | dafce92cc24ff7f0b47b3d28be758ea7fa052c05 (patch) | |
| tree | 8e72efc3276ba51477b5fb72b3609cd25a6b48a1 | |
| parent | f4faaa8b865e68028782058639347337757e9823 (diff) | |
| download | rabbitmq-server-git-dafce92cc24ff7f0b47b3d28be758ea7fa052c05.tar.gz | |
Whoops - add missing catch case which I just hit in testing...
| -rw-r--r-- | src/gm.erl | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/gm.erl b/src/gm.erl index fd8d9b7792..8cf225815e 100644 --- a/src/gm.erl +++ b/src/gm.erl @@ -931,6 +931,12 @@ join_group(Self, GroupName, #gm_group { members = Members } = Group) -> prune_or_create_group(Self, GroupName)); Alive -> Left = lists:nth(random:uniform(length(Alive)), Alive), + Handler = + fun () -> + join_group( + Self, GroupName, + record_dead_member_in_group(Left, GroupName)) + end, try case gen_server2:call( Left, {add_on_right, Self}, infinity) of @@ -940,9 +946,10 @@ join_group(Self, GroupName, #gm_group { members = Members } = Group) -> catch exit:{R, _} when R =:= noproc; R =:= normal; R =:= shutdown -> - join_group( - Self, GroupName, - record_dead_member_in_group(Left, GroupName)) + Handler(); + exit:{{R, _}, _} + when R =:= nodedown; R =:= shutdown -> + Handler() end end end. |
