summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Kuratczyk <mkuratczyk@vmware.com>2022-11-16 09:45:34 +0100
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2022-11-16 10:40:12 +0000
commitd28c233b16f7688bfbd80caa4d5e7f00b88d213f (patch)
treed17e9016867e29cdc3dacce14fee0c91c5b8efae
parent86c71a6cfe0ba8a8004e17a0b5090c3c605a2071 (diff)
downloadrabbitmq-server-git-d28c233b16f7688bfbd80caa4d5e7f00b88d213f.tar.gz
load_definitions should fail on invalid JSON
Prior to this change, a completely invalid JSON file would be silently ignored on boot - the node would start, but the definitions wouldn't be imported obviously. This makes the problem explicit with: ``` BOOT FAILED =========== Error during startup: {error,not_json} ```` (cherry picked from commit 2ae3480c877ddd7a6e292e026a90709f3fdeb3df)
-rw-r--r--deps/rabbit/src/rabbit_definitions.erl9
1 files changed, 6 insertions, 3 deletions
diff --git a/deps/rabbit/src/rabbit_definitions.erl b/deps/rabbit/src/rabbit_definitions.erl
index ad68b50370..5556b477fd 100644
--- a/deps/rabbit/src/rabbit_definitions.erl
+++ b/deps/rabbit/src/rabbit_definitions.erl
@@ -90,9 +90,12 @@ boot() ->
maybe_load_definitions() ->
%% Classic source: local file or data directory
- maybe_load_definitions_from_local_filesystem(rabbit, load_definitions),
- %% Extensible sources
- maybe_load_definitions_from_pluggable_source(rabbit, definitions).
+ case maybe_load_definitions_from_local_filesystem(rabbit, load_definitions) of
+ ok ->
+ % Extensible sources
+ maybe_load_definitions_from_pluggable_source(rabbit, definitions);
+ {error, E} -> {error, E}
+ end.
-spec import_raw(Body :: binary() | iolist()) -> ok | {error, term()}.
import_raw(Body) ->