diff options
| author | Michael Klishin <michael@clojurewerkz.org> | 2017-07-10 21:43:10 +0300 |
|---|---|---|
| committer | Michael Klishin <michael@clojurewerkz.org> | 2017-07-10 21:43:10 +0300 |
| commit | 976d4a3406511daa674d85a9af4a2d3b43fda82f (patch) | |
| tree | 873813f3332df4c39cc91fd4c4337430d407219b /src | |
| parent | a451a4b1158682d5931d59f00dfdfc411eadaef4 (diff) | |
| parent | e5fea8d1735f7de245afc9132f71f94ef03b8b13 (diff) | |
| download | rabbitmq-server-git-976d4a3406511daa674d85a9af4a2d3b43fda82f.tar.gz | |
Merge branch 'stable'
Conflicts:
src/rabbit_amqqueue.erl
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_amqqueue.erl | 8 | ||||
| -rw-r--r-- | src/rabbit_amqqueue_process.erl | 2 | ||||
| -rw-r--r-- | src/rabbit_core_metrics_gc.erl | 2 | ||||
| -rw-r--r-- | src/rabbit_mirror_queue_sync.erl | 2 |
4 files changed, 11 insertions, 3 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index 81eb5edf6e..d6775a4347 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -29,7 +29,8 @@ -export([list/0, list/1, info_keys/0, info/1, info/2, info_all/1, info_all/2, emit_info_all/5, list_local/1, info_local/1, emit_info_local/4, emit_info_down/4]). --export([list_down/1, count/1, list_names/0]). +-export([list_down/1, count/1, list_names/0, + list_names/0, list_local_names/0]). -export([force_event_refresh/1, notify_policy_changed/1]). -export([consumers/1, consumers_all/1, emit_consumers_all/4, consumer_info_keys/0]). -export([basic_get/4, basic_consume/11, basic_cancel/5, notify_decorators/1]). @@ -592,6 +593,11 @@ list() -> mnesia:dirty_match_object(rabbit_queue, #amqqueue{_ = '_'}). list_names() -> mnesia:dirty_all_keys(rabbit_queue). +list_local_names() -> + [ Q#amqqueue.name || #amqqueue{state = State, pid = QPid} = Q <- list(), + State =/= crashed, + node() =:= node(QPid) ]. + list(VHostPath) -> list(VHostPath, rabbit_queue). %% Not dirty_match_object since that would not be transactional when used in a diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl index c52d329392..4e43104de2 100644 --- a/src/rabbit_amqqueue_process.erl +++ b/src/rabbit_amqqueue_process.erl @@ -266,11 +266,13 @@ init_with_backing_queue_state(Q = #amqqueue{exclusive_owner = Owner}, BQ, BQS, State3. terminate(shutdown = R, State = #q{backing_queue = BQ}) -> + rabbit_core_metrics:queue_deleted(qname(State)), terminate_shutdown(fun (BQS) -> BQ:terminate(R, BQS) end, State); terminate({shutdown, missing_owner} = Reason, State) -> %% if the owner was missing then there will be no queue, so don't emit stats terminate_shutdown(terminate_delete(false, Reason, State), State); terminate({shutdown, _} = R, State = #q{backing_queue = BQ}) -> + rabbit_core_metrics:queue_deleted(qname(State)), terminate_shutdown(fun (BQS) -> BQ:terminate(R, BQS) end, State); terminate(normal, State) -> %% delete case terminate_shutdown(terminate_delete(true, normal, State), State); diff --git a/src/rabbit_core_metrics_gc.erl b/src/rabbit_core_metrics_gc.erl index 3141fdc301..3321f2b5de 100644 --- a/src/rabbit_core_metrics_gc.erl +++ b/src/rabbit_core_metrics_gc.erl @@ -70,7 +70,7 @@ gc_channels() -> ok. gc_queues() -> - Queues = rabbit_amqqueue:list_names(), + Queues = rabbit_amqqueue:list_local_names(), GbSet = gb_sets:from_list(Queues), gc_entity(queue_metrics, GbSet), gc_entity(queue_coarse_metrics, GbSet), diff --git a/src/rabbit_mirror_queue_sync.erl b/src/rabbit_mirror_queue_sync.erl index 2994e8cbcf..fd64fd61b3 100644 --- a/src/rabbit_mirror_queue_sync.erl +++ b/src/rabbit_mirror_queue_sync.erl @@ -16,7 +16,7 @@ -module(rabbit_mirror_queue_sync). --include("rabbit.hrl"). +-include_lib("rabbit_common/include/rabbit.hrl"). -export([master_prepare/4, master_go/8, slave/7, conserve_resources/3]). |
