summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2011-07-26 18:39:12 +0100
committerMatthew Sackman <matthew@rabbitmq.com>2011-07-26 18:39:12 +0100
commita3bc422fa3e94686025d651f9326bb90c46f5158 (patch)
tree625444aceab58a7b03a09081f02f1b80b5721c7f
parent9433b14ae3f0e864895b0b02837b7598cadfe32c (diff)
downloadrabbitmq-server-a3bc422fa3e94686025d651f9326bb90c46f5158.tar.gz
Wipe out slave pids whenever we start up a queue.
-rw-r--r--src/rabbit_amqqueue.erl3
-rw-r--r--src/rabbit_mirror_queue_slave.erl5
2 files changed, 4 insertions, 4 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index e9d01d12..d6e10471 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -254,7 +254,8 @@ determine_queue_nodes(Args) ->
end.
start_queue_process(Node, Q) ->
- {ok, Pid} = rabbit_amqqueue_sup:start_child(Node, [Q]),
+ {ok, Pid} = rabbit_amqqueue_sup:start_child(Node,
+ [Q#amqqueue{slave_pids = []}]),
Q#amqqueue{pid = Pid}.
add_default_binding(#amqqueue{name = QueueName}) ->
diff --git a/src/rabbit_mirror_queue_slave.erl b/src/rabbit_mirror_queue_slave.erl
index b38a8967..84efb7ca 100644
--- a/src/rabbit_mirror_queue_slave.erl
+++ b/src/rabbit_mirror_queue_slave.erl
@@ -89,9 +89,8 @@ init([#amqqueue { name = QueueName } = Q]) ->
%% ASSERTION
[] = [Pid || Pid <- [QPid | MPids], node(Pid) =:= Node],
MPids1 = MPids ++ [Self],
- mnesia:write(rabbit_queue,
- Q1 #amqqueue { slave_pids = MPids1 },
- write),
+ ok = rabbit_amqqueue:store_queue(
+ Q1 #amqqueue { slave_pids = MPids1 }),
{ok, QPid}
end),
erlang:monitor(process, MPid),