diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2013-06-21 11:26:15 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2013-06-21 11:26:15 +0100 |
| commit | 9b61963c76fc05aa4209960e7a24c9bc334cd9ce (patch) | |
| tree | b579bd9f44b9bd5322003aad02472ac3571c55ae | |
| parent | 97f271b98959bddb9d30761b31c694df15a1ecf5 (diff) | |
| download | rabbitmq-server-git-9b61963c76fc05aa4209960e7a24c9bc334cd9ce.tar.gz | |
Don't persist gm_pids; by definition when all we have is the rabbit_durable_queue record the cluster has gone down completely so there can't be any pids. Fixes gm_pids leak. Since we're here, fix a similar but less severe leak in sync_slave_pids. (Less severe because rabbit_mirror_queue_misc:store_updated_slaves/1 has the effect of cleaning it up periodically. But it's still wrong.)
| -rw-r--r-- | src/rabbit_amqqueue.erl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index e0fbaf77df..ef5dd1038f 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -282,7 +282,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}) -> |
