fix(emqx_app): stop listeners in application prep_stop callback
Application:stop is call after the root supervisor is stopped, in our case, prior to this fix, emqx_sup is stopped before the listeners (hence the emqx_connection processes). This causes shutdown to emit a lot of error logs e.g. emqx_broker pool is down, but emqx_connection process is still trying to call the pool
This commit is contained in:
parent
fee3462603
commit
dd23ee6b15
|
@ -19,6 +19,7 @@
|
||||||
-behaviour(application).
|
-behaviour(application).
|
||||||
|
|
||||||
-export([ start/2
|
-export([ start/2
|
||||||
|
, prep_stop/1
|
||||||
, stop/1
|
, stop/1
|
||||||
, get_description/0
|
, get_description/0
|
||||||
, get_release/0
|
, get_release/0
|
||||||
|
@ -50,12 +51,14 @@ start(_Type, _Args) ->
|
||||||
print_vsn(),
|
print_vsn(),
|
||||||
{ok, Sup}.
|
{ok, Sup}.
|
||||||
|
|
||||||
-spec(stop(State :: term()) -> term()).
|
prep_stop(_State) ->
|
||||||
stop(_State) ->
|
|
||||||
ok = emqx_alarm_handler:unload(),
|
ok = emqx_alarm_handler:unload(),
|
||||||
emqx_boot:is_enabled(listeners)
|
emqx_boot:is_enabled(listeners)
|
||||||
andalso emqx_listeners:stop().
|
andalso emqx_listeners:stop().
|
||||||
|
|
||||||
|
stop(_State) ->
|
||||||
|
ok.
|
||||||
|
|
||||||
set_backtrace_depth() ->
|
set_backtrace_depth() ->
|
||||||
Depth = application:get_env(?APP, backtrace_depth, 16),
|
Depth = application:get_env(?APP, backtrace_depth, 16),
|
||||||
_ = erlang:system_flag(backtrace_depth, Depth),
|
_ = erlang:system_flag(backtrace_depth, Depth),
|
||||||
|
|
Loading…
Reference in New Issue