summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_mirror_queue_coordinator.erl6
-rw-r--r--src/rabbit_mirror_queue_slave.erl4
2 files changed, 10 insertions, 0 deletions
diff --git a/src/rabbit_mirror_queue_coordinator.erl b/src/rabbit_mirror_queue_coordinator.erl
index 2727c1d094..ab0b2362e9 100644
--- a/src/rabbit_mirror_queue_coordinator.erl
+++ b/src/rabbit_mirror_queue_coordinator.erl
@@ -358,6 +358,10 @@ handle_cast({gm_deaths, Deaths},
{stop, normal, State}
end;
+handle_cast(request_length, State) ->
+ %% TODO: something
+ noreply(State);
+
handle_cast({ensure_monitoring, Pids},
State = #state { monitors = Monitors }) ->
Monitors1 =
@@ -408,6 +412,8 @@ members_changed([CPid], _Births, Deaths) ->
handle_msg([_CPid], _From, heartbeat) ->
ok;
+handle_msg([CPid], _From, request_length = Msg) ->
+ ok = gen_server2:cast(CPid, Msg);
handle_msg([CPid], _From, {ensure_monitoring, _Pids} = Msg) ->
ok = gen_server2:cast(CPid, Msg);
handle_msg([_CPid], _From, _Msg) ->
diff --git a/src/rabbit_mirror_queue_slave.erl b/src/rabbit_mirror_queue_slave.erl
index 81e8330174..8a365e6acb 100644
--- a/src/rabbit_mirror_queue_slave.erl
+++ b/src/rabbit_mirror_queue_slave.erl
@@ -103,6 +103,7 @@ init([#amqqueue { name = QueueName } = Q]) ->
BQS = bq_init(BQ, Q, false),
rabbit_event:notify(queue_slave_created,
[{name, QueueName}, {pid, self()}, {master_pid, MPid}]),
+ ok = gm:broadcast(GM, request_length),
{ok, #state { q = Q,
gm = GM,
master_pid = MPid,
@@ -305,6 +306,9 @@ members_changed([SPid], _Births, Deaths) ->
handle_msg([_SPid], _From, heartbeat) ->
ok;
+handle_msg([_SPid], _From, request_length) ->
+ %% This is only of value to the master
+ ok;
handle_msg([_SPid], _From, {ensure_monitoring, _Pid}) ->
%% This is only of value to the master
ok;