diff --git a/deps/rabbit/src/rabbit_core_ff.erl b/deps/rabbit/src/rabbit_core_ff.erl index 8eb0a731a566..d8023805688e 100644 --- a/deps/rabbit/src/rabbit_core_ff.erl +++ b/deps/rabbit/src/rabbit_core_ff.erl @@ -165,7 +165,8 @@ listener_records_in_ets_enable(#{feature_name := FeatureName}) -> rabbit_listener, [{'$1',[],['$1']}]), lists:foreach( fun(Listener) -> - ets:insert(rabbit_listener_ets, Listener) + rabbit_networking:is_listener_on_this_node(Listener) + andalso ets:insert(rabbit_listener_ets, Listener) end, Listeners) end) catch diff --git a/deps/rabbit/src/rabbit_networking.erl b/deps/rabbit/src/rabbit_networking.erl index 4d55c8253388..cf9904e497af 100644 --- a/deps/rabbit/src/rabbit_networking.erl +++ b/deps/rabbit/src/rabbit_networking.erl @@ -45,6 +45,8 @@ -export([ensure_listener_table_for_this_node/0]). +-export([is_listener_on_this_node/1]). + -deprecated([{force_connection_event_refresh, 1, eventually}]). -export([ @@ -819,3 +821,7 @@ ipv6_status(TestPort) -> ensure_listener_table_for_this_node() -> _ = ets:new(?ETS_TABLE, [named_table, public, bag, {keypos, #listener.node}]), ok. + +%% Needed for migration when feature flag listener_records_in_ets is enabled +is_listener_on_this_node(#listener{node = Node}) -> + Node =:= node().