diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2014-05-13 15:13:59 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2014-05-13 15:13:59 +0100 |
| commit | d00af4e21c16f83fc650fd662fd0da52439b2d70 (patch) | |
| tree | 9c50cbf59f8e410e7fb7ba901533d543efefe873 | |
| parent | 46c70debcbaebd19c291939e34aeb9f9480e7af1 (diff) | |
| parent | e7b8269891eadfde6e94def99572d2f26afc4990 (diff) | |
| download | rabbitmq-server-git-d00af4e21c16f83fc650fd662fd0da52439b2d70.tar.gz | |
stable to default
| -rw-r--r-- | src/rabbit_mirror_queue_slave.erl | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/rabbit_mirror_queue_slave.erl b/src/rabbit_mirror_queue_slave.erl index ee889f8442..f18c319e5c 100644 --- a/src/rabbit_mirror_queue_slave.erl +++ b/src/rabbit_mirror_queue_slave.erl @@ -102,7 +102,15 @@ handle_go(Q = #amqqueue{name = QName}) -> process_flag(trap_exit, true), %% amqqueue_process traps exits too. {ok, GM} = gm:start_link(QName, ?MODULE, [self()], fun rabbit_misc:execute_mnesia_transaction/1), - receive {joined, GM} -> ok end, + MRef = erlang:monitor(process, GM), + %% We ignore the DOWN message because we are also linked and + %% trapping exits, we just want to not get stuck and we will exit + %% later. + receive + {joined, GM} -> erlang:demonitor(MRef, [flush]), + ok; + {'DOWN', MRef, _, _, _} -> ok + end, Self = self(), Node = node(), case rabbit_misc:execute_mnesia_transaction( |
