diff options
| author | Michael Klishin <michael@clojurewerkz.org> | 2020-06-26 04:01:10 +0300 |
|---|---|---|
| committer | Michael Klishin <michael@clojurewerkz.org> | 2020-06-26 04:01:10 +0300 |
| commit | 9aead56e29e5d660623f6a22a9765e7f8c83965b (patch) | |
| tree | 0466859ecf748c4c5af66a19c24dc429aaca758b /src | |
| parent | f8c36c2cf57e5932ab04cca4b714525e46f48231 (diff) | |
| download | rabbitmq-server-git-9aead56e29e5d660623f6a22a9765e7f8c83965b.tar.gz | |
Export definitions on boot after all plugins have been enabled
This way definitions that depend on a plugin, such as federation upstreams
or exchanges of custom types, can be imported successfully.
Closes #2384
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit.erl | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl index 83f9e4a02a..934e527ae2 100644 --- a/src/rabbit.erl +++ b/src/rabbit.erl @@ -104,17 +104,7 @@ -rabbit_boot_step({definition_import_worker_pool, [{description, "dedicated worker pool for definition import"}, {mfa, {rabbit_definitions, boot, []}}, - {requires, external_infrastructure}, - {enables, load_core_definitions}]}). - -%% We want to A) make sure we apply definitions before the node begins serving -%% traffic and B) in fact do it before empty_db_check (so the defaults will not -%% get created if we don't need 'em). --rabbit_boot_step({load_core_definitions, - [{description, "imports definitions"}, - {mfa, {rabbit_definitions, maybe_load_definitions, []}}, - {requires, [recovery, definition_import_worker_pool]}, - {enables, empty_db_check}]}). + {requires, external_infrastructure}]}). -rabbit_boot_step({external_infrastructure, [{description, "external infrastructure ready"}]}). @@ -935,7 +925,10 @@ do_run_postlaunch_phase() -> ok = rabbit_lager:broker_is_started(), ok = log_broker_started( - rabbit_plugins:strictly_plugins(rabbit_plugins:active())) + rabbit_plugins:strictly_plugins(rabbit_plugins:active())), + %% export definitions after all plugins have been enabled, + %% see rabbitmq/rabbitmq-server#2384 + rabbit_definitions:maybe_load_definitions() catch throw:{error, _} = Error -> rabbit_prelaunch_errors:log_error(Error), |
