diff options
author | Michal Kuratczyk <mkuratczyk@vmware.com> | 2022-11-16 09:45:34 +0100 |
---|---|---|
committer | Mergify <37929162+mergify[bot]@users.noreply.github.com> | 2022-11-16 10:40:12 +0000 |
commit | d28c233b16f7688bfbd80caa4d5e7f00b88d213f (patch) | |
tree | d17e9016867e29cdc3dacce14fee0c91c5b8efae | |
parent | 86c71a6cfe0ba8a8004e17a0b5090c3c605a2071 (diff) | |
download | rabbitmq-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.erl | 9 |
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) -> |