summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiana Corbacho <diana@rabbitmq.com>2017-03-01 12:07:26 +0000
committerDiana Corbacho <diana@rabbitmq.com>2017-03-01 12:07:26 +0000
commitd62f57878d397fc0cbcb9de758c661b524f810dc (patch)
treee5485cfe854cc546557c3d49d30091b20474eae1
parent682a13633dcc155f7e807e5985b01e56c527f7f9 (diff)
downloadrabbitmq-server-git-d62f57878d397fc0cbcb9de758c661b524f810dc.tar.gz
Update metrics gc to support gc marker
-rw-r--r--src/rabbit_core_metrics_gc.erl10
-rw-r--r--test/rabbit_core_metrics_gc_SUITE.erl1
2 files changed, 7 insertions, 4 deletions
diff --git a/src/rabbit_core_metrics_gc.erl b/src/rabbit_core_metrics_gc.erl
index e7f848bbc3..e0d7781796 100644
--- a/src/rabbit_core_metrics_gc.erl
+++ b/src/rabbit_core_metrics_gc.erl
@@ -96,6 +96,8 @@ gc_gen_server2() ->
gc_process(Table) ->
ets:foldl(fun({Pid = Key, _}, none) ->
gc_process(Pid, Table, Key);
+ ({Pid = Key, _, _, _, _}, none) ->
+ gc_process(Pid, Table, Key);
({Pid = Key, _, _, _}, none) ->
gc_process(Pid, Table, Key)
end, none, Table).
@@ -115,6 +117,8 @@ gc_entity(Table, GbSet) ->
gc_entity(Id, Table, Key, GbSet);
({Id = Key, _}, none) ->
gc_entity(Id, Table, Key, GbSet);
+ ({Id = Key, _, _}, none) ->
+ gc_entity(Id, Table, Key, GbSet);
({Id = Key, _, _, _, _}, none) ->
gc_entity(Id, Table, Key, GbSet)
end, none, Table).
@@ -130,11 +134,11 @@ gc_entity(Id, Table, Key, GbSet) ->
end.
gc_process_and_entity(Table, GbSet) ->
- ets:foldl(fun({{Pid, Id} = Key, _, _, _, _, _, _}, none)
+ ets:foldl(fun({{Pid, Id} = Key, _, _, _, _, _, _, _}, none)
when Table == channel_queue_metrics ->
gc_entity(Id, Table, Key, GbSet),
gc_process(Pid, Table, Key);
- ({{Pid, Id} = Key, _, _, _}, none)
+ ({{Pid, Id} = Key, _, _, _, _}, none)
when Table == channel_exchange_metrics ->
gc_entity(Id, Table, Key, GbSet),
gc_process(Pid, Table, Key);
@@ -157,7 +161,7 @@ gc_process_and_entity(Id, Pid, Table, Key, GbSet) ->
end.
gc_process_and_entities(Table, QueueGbSet, ExchangeGbSet) ->
- ets:foldl(fun({{Pid, {Q, X}} = Key, _}, none) ->
+ ets:foldl(fun({{Pid, {Q, X}} = Key, _, _}, none) ->
gc_process(Pid, Table, Key),
gc_entity(Q, Table, Key, QueueGbSet),
gc_entity(X, Table, Key, ExchangeGbSet)
diff --git a/test/rabbit_core_metrics_gc_SUITE.erl b/test/rabbit_core_metrics_gc_SUITE.erl
index b7311463d5..c3997f31e2 100644
--- a/test/rabbit_core_metrics_gc_SUITE.erl
+++ b/test/rabbit_core_metrics_gc_SUITE.erl
@@ -106,7 +106,6 @@ queue_metrics(Config) ->
[queue_metrics, Q]),
[_] = rabbit_ct_broker_helpers:rpc(Config, A, ets, lookup,
[queue_coarse_metrics, Q]),
-
%% Trigger gc. When the gen_server:call returns, the gc has already finished.
rabbit_ct_broker_helpers:rpc(Config, A, erlang, send, [rabbit_core_metrics_gc, start_gc]),
rabbit_ct_broker_helpers:rpc(Config, A, gen_server, call, [rabbit_core_metrics_gc, test]),