Просмотр исходного кода

Merge pull request #6121 from HJianBo/ensure-start-listeners-before-plugin

Ensure starting listeners before plugins loading
JianBo He 4 лет назад
Родитель
Сommit
cc7b1aa93e
2 измененных файлов с 10 добавлено и 3 удалено
  1. 6 2
      src/emqx.appup.src
  2. 4 1
      src/emqx_app.erl

+ 6 - 2
src/emqx.appup.src

@@ -1,6 +1,8 @@
 %% -*- mode: erlang -*-
 {VSN,
-  [{"4.3.10",[{load_module,emqx_connection,brutal_purge,soft_purge,[]}]},
+  [{"4.3.10",
+    [{load_module,emqx_app,brutal_purge,soft_purge,[]},
+     {load_module,emqx_connection,brutal_purge,soft_purge,[]}]},
    {"4.3.9",
     [{load_module,emqx_connection,brutal_purge,soft_purge,[]},
      {load_module,emqx_channel,brutal_purge,soft_purge,[]},
@@ -155,7 +157,9 @@
      {load_module,emqx_rpc,brutal_purge,soft_purge,[]},
      {load_module,emqx_app,brutal_purge,soft_purge,[]}]},
    {<<".*">>,[]}],
-  [{"4.3.10",[{load_module,emqx_connection,brutal_purge,soft_purge,[]}]},
+  [{"4.3.10",
+    [{load_module,emqx_app,brutal_purge,soft_purge,[]},
+     {load_module,emqx_connection,brutal_purge,soft_purge,[]}]},
    {"4.3.9",
     [{load_module,emqx_connection,brutal_purge,soft_purge,[]},
      {load_module,emqx_channel,brutal_purge,soft_purge,[]},

+ 4 - 1
src/emqx_app.erl

@@ -42,10 +42,13 @@ start(_Type, _Args) ->
     ekka:start(),
     {ok, Sup} = emqx_sup:start_link(),
     ok = start_autocluster(),
+    %% We need to make sure that emqx's listeners start before plugins
+    %% and modules. Since if the emqx-conf module/plugin is enabled, it will
+    %% try to start or update the listeners with the latest configuration
+    emqx_boot:is_enabled(listeners) andalso (ok = emqx_listeners:start()),
     ok = emqx_plugins:init(),
     _ = emqx_plugins:load(),
     _ = start_ce_modules(),
-    emqx_boot:is_enabled(listeners) andalso (ok = emqx_listeners:start()),
     register(emqx, self()),
     ok = emqx_alarm_handler:load(),
     print_vsn(),