summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Cogoluègnes <acogoluegnes@gmail.com>2020-10-23 11:14:04 +0200
committerArnaud Cogoluègnes <acogoluegnes@gmail.com>2020-10-23 11:14:04 +0200
commita2f05f5b75e5b0660db8d00ff1f503cec0af8f6a (patch)
tree80e43fa7cfe929baf3f69910bbed186f86c49197
parentbd191cf40d1b6b6643c570a820bcc997d03e24b5 (diff)
downloadrabbitmq-server-git-a2f05f5b75e5b0660db8d00ff1f503cec0af8f6a.tar.gz
Support shutdown call from management plugin
-rw-r--r--deps/rabbitmq_stream/src/rabbit_stream_reader.erl9
1 files changed, 9 insertions, 0 deletions
diff --git a/deps/rabbitmq_stream/src/rabbit_stream_reader.erl b/deps/rabbitmq_stream/src/rabbit_stream_reader.erl
index b9807e1b08..9a465f5df2 100644
--- a/deps/rabbitmq_stream/src/rabbit_stream_reader.erl
+++ b/deps/rabbitmq_stream/src/rabbit_stream_reader.erl
@@ -396,6 +396,15 @@ listen_loop_post_auth(Transport, #stream_connection{socket = S,
rabbit_event:notify(connection_created, Infos, Ref),
Connection1 = rabbit_event:init_stats_timer(Connection, #stream_connection.stats_timer),
listen_loop_post_auth(Transport, Connection1, State, Configuration);
+ {'$gen_call', From, {shutdown, Explanation}} ->
+ % likely closing call from the management plugin
+ gen_server:reply(From, ok),
+ rabbit_log:info("Forcing stream connection ~p closing: ~p~n", [self(), Explanation]),
+ demonitor_all_streams(Connection),
+ rabbit_networking:unregister_external_connection(self()),
+ notify_connection_closed(Connection, State),
+ close(Transport, S),
+ ok;
{Closed, S} ->
demonitor_all_streams(Connection),
rabbit_networking:unregister_external_connection(self()),