Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion deps/rabbit/src/rabbit_core_ff.erl
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@
-rabbit_feature_flag(
{listener_records_in_ets,
#{desc => "Store listener records in ETS instead of Mnesia",
%%TODO remove compatibility code
stability => required,
depends_on => [feature_flags_v2]
}}).
Expand Down
68 changes: 1 addition & 67 deletions deps/rabbit/src/rabbit_networking.erl
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

-export([boot/0, start_tcp_listener/2, start_tcp_listener/3,
start_ssl_listener/3, start_ssl_listener/4,
stop_tcp_listener/1, on_node_down/1, active_listeners/0,
stop_tcp_listener/1, active_listeners/0,
node_listeners/1, node_client_listeners/1,
register_connection/1, unregister_connection/1,
register_non_amqp_connection/1, unregister_non_amqp_connection/1,
Expand Down Expand Up @@ -251,26 +251,6 @@ ranch_ref_of_protocol(Protocol) ->

-spec listener_of_protocol(atom()) -> #listener{}.
listener_of_protocol(Protocol) ->
case rabbit_feature_flags:is_enabled(listener_records_in_ets) of
true -> listener_of_protocol_ets(Protocol);
false -> listener_of_protocol_mnesia(Protocol)
end.

listener_of_protocol_mnesia(Protocol) ->
rabbit_mnesia:execute_mnesia_transaction(
fun() ->
MatchSpec = #listener{
node = node(),
protocol = Protocol,
_ = '_'
},
case mnesia:match_object(rabbit_listener, MatchSpec, read) of
[] -> undefined;
[Row] -> Row
end
end).

listener_of_protocol_ets(Protocol) ->
MatchSpec = #listener{
protocol = Protocol,
_ = '_'
Expand Down Expand Up @@ -378,15 +358,6 @@ tcp_listener_started(Protocol, Opts, IPAddress, Port) ->
ip_address = IPAddress,
port = Port,
opts = Opts},
case rabbit_feature_flags:is_enabled(listener_records_in_ets) of
true -> tcp_listener_started_ets(L);
false -> tcp_listener_started_mnesia(L)
end.

tcp_listener_started_mnesia(L) ->
ok = mnesia:dirty_write(rabbit_listener, L).

tcp_listener_started_ets(L) ->
true = ets:insert(?ETS_TABLE, L),
ok.

Expand All @@ -405,15 +376,6 @@ tcp_listener_stopped(Protocol, Opts, IPAddress, Port) ->
ip_address = IPAddress,
port = Port,
opts = Opts},
case rabbit_feature_flags:is_enabled(listener_records_in_ets) of
true -> tcp_listener_stopped_ets(L);
false -> tcp_listener_stopped_mnesia(L)
end.

tcp_listener_stopped_mnesia(L) ->
ok = mnesia:dirty_delete_object(rabbit_listener, L).

tcp_listener_stopped_ets(L) ->
true = ets:delete_object(?ETS_TABLE, L),
ok.

Expand Down Expand Up @@ -469,15 +431,6 @@ active_listeners() ->
-spec node_listeners(node()) -> [rabbit_types:listener()].

node_listeners(Node) ->
case rabbit_feature_flags:is_enabled(listener_records_in_ets) of
true -> node_listeners_ets(Node);
false -> node_listeners_mnesia(Node)
end.

node_listeners_mnesia(Node) ->
mnesia:dirty_read(rabbit_listener, Node).

node_listeners_ets(Node) ->
case rabbit_misc:rpc_call(Node, ets, tab2list, [?ETS_TABLE]) of
{badrpc, _} ->
%% Some of the reasons are the node being down or is
Expand All @@ -499,25 +452,6 @@ node_client_listeners(Node) ->
end, Xs)
end.

-spec on_node_down(node()) -> 'ok'.

on_node_down(Node) ->
case rabbit_feature_flags:is_enabled(listener_records_in_ets) of
true -> ok;
false -> on_node_down_mnesia(Node)
end.

on_node_down_mnesia(Node) ->
case lists:member(Node, nodes()) of
false ->
rabbit_log:info(
"Node ~ts is down, deleting its listeners", [Node]),
ok = mnesia:dirty_delete(rabbit_listener, Node);
true ->
rabbit_log:info(
"Keeping ~ts listeners: the node is already back", [Node])
end.

-spec register_connection(pid()) -> ok.

register_connection(Pid) -> pg_local:join(rabbit_connections, Pid).
Expand Down
1 change: 0 additions & 1 deletion deps/rabbit/src/rabbit_node_monitor.erl
Original file line number Diff line number Diff line change
Expand Up @@ -815,7 +815,6 @@ handle_dead_rabbit(Node, State = #state{partitions = Partitions,
ok = rabbit_amqqueue:on_node_down(Node),
ok = rabbit_alarm:on_node_down(Node),
ok = rabbit_mnesia:on_node_down(Node),
ok = rabbit_networking:on_node_down(Node),
%% If we have been partitioned, and we are now in the only remaining
%% partition, we no longer care about partitions - forget them. Note
%% that we do not attempt to deal with individual (other) partitions
Expand Down
17 changes: 1 addition & 16 deletions deps/rabbit/src/rabbit_table.erl
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,6 @@ definitions(ram) ->
{Tab, TabDef} <- definitions()].

definitions() ->
Definitions =
[{rabbit_user,
[{record_name, internal_user},
{attributes, internal_user:fields()},
Expand Down Expand Up @@ -396,21 +395,7 @@ definitions() ->
{match, amqqueue:pattern_match_on_name(queue_name_match())}]}
]
++ gm:table_definitions()
++ mirrored_supervisor:table_definitions(),

MaybeListener = case rabbit_feature_flags:is_enabled(listener_records_in_ets) of
false ->
[{rabbit_listener, rabbit_listener_definition()}];
true ->
[]
end,
Definitions ++ MaybeListener.

rabbit_listener_definition() ->
[{record_name, listener},
{attributes, record_info(fields, listener)},
{type, bag},
{match, #listener{_='_'}}].
++ mirrored_supervisor:table_definitions().

binding_match() ->
#binding{source = exchange_name_match(),
Expand Down