summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_amqqueue.erl5
-rw-r--r--src/rabbit_mirror_queue_misc.erl2
2 files changed, 6 insertions, 1 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index 74fd70ae68..767abeb03d 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -284,7 +284,10 @@ update(Name, Fun) ->
end.
store_queue(Q = #amqqueue{durable = true}) ->
- ok = mnesia:write(rabbit_durable_queue, Q#amqqueue{slave_pids = []}, write),
+ ok = mnesia:write(rabbit_durable_queue,
+ Q#amqqueue{slave_pids = [],
+ sync_slave_pids = [],
+ gm_pids = []}, write),
ok = mnesia:write(rabbit_queue, Q, write),
ok;
store_queue(Q = #amqqueue{durable = false}) ->
diff --git a/src/rabbit_mirror_queue_misc.erl b/src/rabbit_mirror_queue_misc.erl
index 529351a2bd..1b87694f8a 100644
--- a/src/rabbit_mirror_queue_misc.erl
+++ b/src/rabbit_mirror_queue_misc.erl
@@ -215,6 +215,8 @@ report_deaths(MirrorPid, IsMaster, QueueName, DeadPids) ->
store_updated_slaves(Q = #amqqueue{slave_pids = SPids,
sync_slave_pids = SSPids}) ->
+ %% TODO now that we clear sync_slave_pids in rabbit_durable_queue,
+ %% do we still need this?
SSPids1 = [SSPid || SSPid <- SSPids, lists:member(SSPid, SPids)],
Q1 = Q#amqqueue{sync_slave_pids = SSPids1},
ok = rabbit_amqqueue:store_queue(Q1),