From 2fbe2dd0c3ab2913e3f237baeaa9686e774e3105 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Mon, 3 Jan 2022 12:02:51 +0100 Subject: [PATCH] fix(boot): ensure emqx_conf is the first app to boot The first one to boot after emqx_machine --- apps/emqx_machine/src/emqx_machine_boot.erl | 4 ++-- apps/emqx_machine/test/emqx_machine_tests.erl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/emqx_machine/src/emqx_machine_boot.erl b/apps/emqx_machine/src/emqx_machine_boot.erl index 9d45f791e..93bd31f21 100644 --- a/apps/emqx_machine/src/emqx_machine_boot.erl +++ b/apps/emqx_machine/src/emqx_machine_boot.erl @@ -85,7 +85,6 @@ reboot_apps() -> , esockd , ranch , cowboy - , emqx_conf , emqx , emqx_prometheus , emqx_modules @@ -121,7 +120,8 @@ sorted_reboot_apps(Apps) -> NoDepApps = add_apps_to_digraph(G, Apps), case digraph_utils:topsort(G) of Sorted when is_list(Sorted) -> - Sorted ++ (NoDepApps -- Sorted); + %% ensure emqx_conf boot up first + [emqx_conf | Sorted ++ (NoDepApps -- Sorted)]; false -> Loops = find_loops(G), error({circular_application_dependency, Loops}) diff --git a/apps/emqx_machine/test/emqx_machine_tests.erl b/apps/emqx_machine/test/emqx_machine_tests.erl index 1a562b815..074167f95 100644 --- a/apps/emqx_machine/test/emqx_machine_tests.erl +++ b/apps/emqx_machine/test/emqx_machine_tests.erl @@ -38,7 +38,7 @@ sorted_reboot_apps_cycle_test() -> check_order(Apps) -> AllApps = lists:usort(lists:append([[A | Deps] || {A, Deps} <- Apps])), - Sorted = emqx_machine_boot:sorted_reboot_apps(Apps), + [emqx_conf | Sorted] = emqx_machine_boot:sorted_reboot_apps(Apps), case length(AllApps) =:= length(Sorted) of true -> ok; false -> error({AllApps, Sorted})