diff options
| -rw-r--r-- | src/rabbit_core_metrics_gc.erl | 10 | ||||
| -rw-r--r-- | test/rabbit_core_metrics_gc_SUITE.erl | 1 |
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]), |
