summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@clojurewerkz.org>2019-04-25 03:20:36 +0300
committerMichael Klishin <michael@clojurewerkz.org>2019-04-25 03:20:36 +0300
commitdb74cf2ad35bd055a5d40e353a1c450b6992b8a5 (patch)
tree8196625fe83d8d8c6aa43407d618748760c42fc4
parentf51f528fe9d397111cd08f237d1eda7074d2d16c (diff)
downloadrabbitmq-server-git-db74cf2ad35bd055a5d40e353a1c450b6992b8a5.tar.gz
Rework log initialisation tests and boot error reporting
Incorrect argument formatting was exposed by the change in #1990 and resulted in unit test failures.
-rw-r--r--src/rabbit.erl27
-rw-r--r--test/unit_inbroker_non_parallel_SUITE.erl66
2 files changed, 50 insertions, 43 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 926269b81a..02a2a899ad 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -461,9 +461,8 @@ start_it(StartFun) ->
true -> ok;
false -> StartFun()
end
- catch
- Class:Reason ->
- boot_error(Class, Reason)
+ catch Class:Reason ->
+ boot_error(Class, Reason)
after
unlink(Marker),
Marker ! stop,
@@ -1016,13 +1015,23 @@ boot_error(_, {could_not_start, rabbit, {{timeout_waiting_for_tables, _}, _}}) -
log_boot_error_and_exit(
timeout_waiting_for_tables,
"~n" ++ Err ++ rabbit_nodes:diagnostics(Nodes), []);
-boot_error(_, {error, {cannot_log_to_file, ErrFmt, ErrArgs}}) ->
- log_boot_error_and_exit(check_config_file, ErrFmt, ErrArgs);
+boot_error(_, {error, {cannot_log_to_file, unknown, Reason}}) ->
+ log_boot_error_and_exit(could_not_initialise_logger,
+ "failed to initialised logger: ~p~n",
+ [Reason]);
+boot_error(_, {error, {cannot_log_to_file, LogFile,
+ {cannot_create_parent_dirs, _, Reason}}}) ->
+ log_boot_error_and_exit(could_not_initialise_logger,
+ "failed to create parent directory for log file at '~s', reason: ~p~n",
+ [LogFile, Reason]);
+boot_error(_, {error, {cannot_log_to_file, LogFile, Reason}}) ->
+ log_boot_error_and_exit(could_not_initialise_logger,
+ "failed to open log file at '~s', reason: ~p~n",
+ [LogFile, Reason]);
boot_error(_, {error, {generate_config_file, Error}}) ->
- log_boot_error_and_exit(
- generate_config_file,
- "~nConfig file generation failed ~s",
- [Error]);
+ log_boot_error_and_exit(generate_config_file,
+ "~nConfig file generation failed ~s~n",
+ [Error]);
boot_error(Class, Reason) ->
LogLocations = log_locations(),
log_boot_error_and_exit(
diff --git a/test/unit_inbroker_non_parallel_SUITE.erl b/test/unit_inbroker_non_parallel_SUITE.erl
index b881ebaf8b..56b645c98e 100644
--- a/test/unit_inbroker_non_parallel_SUITE.erl
+++ b/test/unit_inbroker_non_parallel_SUITE.erl
@@ -320,54 +320,52 @@ log_file_fails_to_initialise_during_startup1(_Config) ->
%% start application with logging to directory with no
%% write permissions
ok = rabbit:stop(),
- NoPermission1 = "/var/empty/test.log",
- delete_file(NoPermission1),
- delete_file(filename:dirname(NoPermission1)),
- ok = rabbit:stop(),
- ok = application:set_env(rabbit, lager_default_file, NoPermission1),
- application:unset_env(rabbit, log),
- application:unset_env(lager, handlers),
- application:unset_env(lager, extra_sinks),
- ok = try rabbit:start() of
+
+ Run1 = fun() ->
+ NoPermission1 = "/var/empty/test.log",
+ delete_file(NoPermission1),
+ delete_file(filename:dirname(NoPermission1)),
+ ok = rabbit:stop(),
+ ok = application:set_env(rabbit, lager_default_file, NoPermission1),
+ application:unset_env(rabbit, log),
+ application:unset_env(lager, handlers),
+ application:unset_env(lager, extra_sinks),
+ rabbit:start()
+ end,
+
+ ok = try Run1() of
ok -> exit({got_success_but_expected_failure,
log_rotation_no_write_permission_dir_test})
catch
- _:{error, {cannot_log_to_file, _, Reason1}}
- when Reason1 =:= enoent orelse Reason1 =:= eacces -> ok;
- _:{error, {cannot_log_to_file, _,
- {cannot_create_parent_dirs, _, Reason1}}}
- when Reason1 =:= eperm orelse
- Reason1 =:= eacces orelse
- Reason1 =:= enoent-> ok
+ _:could_not_initialise_logger -> ok
end,
%% start application with logging to a subdirectory which
%% parent directory has no write permissions
NoPermission2 = "/var/empty/non-existent/test.log",
- delete_file(NoPermission2),
- delete_file(filename:dirname(NoPermission2)),
- case rabbit:stop() of
- ok -> ok;
- {error, lager_not_running} -> ok
+
+ Run2 = fun() ->
+ delete_file(NoPermission2),
+ delete_file(filename:dirname(NoPermission2)),
+ case rabbit:stop() of
+ ok -> ok;
+ {error, lager_not_running} -> ok
+ end,
+ ok = application:set_env(rabbit, lager_default_file, NoPermission2),
+ application:unset_env(rabbit, log),
+ application:unset_env(lager, handlers),
+ application:unset_env(lager, extra_sinks),
+ rabbit:start()
end,
- ok = application:set_env(rabbit, lager_default_file, NoPermission2),
- application:unset_env(rabbit, log),
- application:unset_env(lager, handlers),
- application:unset_env(lager, extra_sinks),
- ok = try rabbit:start() of
+
+ ok = try Run2() of
ok -> exit({got_success_but_expected_failure,
log_rotation_parent_dirs_test})
catch
- _:{error, {cannot_log_to_file, _, Reason2}}
- when Reason2 =:= enoent orelse Reason2 =:= eacces -> ok;
- _:{error, {cannot_log_to_file, _,
- {cannot_create_parent_dirs, _, Reason2}}}
- when Reason2 =:= eperm orelse
- Reason2 =:= eacces orelse
- Reason2 =:= enoent-> ok
+ _:could_not_initialise_logger -> ok
end,
- %% cleanup
+ %% clean up
ok = application:set_env(rabbit, lager_default_file, LogFile),
application:unset_env(rabbit, log),
application:unset_env(lager, handlers),