mirror of
https://github.com/processone/ejabberd
synced 2025-10-03 09:49:18 +02:00
Fix problem calling get_log_path when ejabberd is stopping
When ejabberd is being stopped and some module calls ejabberd_logger:get_log_path(), application:load/1 crashes with error: ** Reason for termination == ** {terminating, [{application_controller,call,2, [{file,"application_controller.erl"},{line,511}]}, {application,load1,2,[{file,"application.erl"},{line,274}]}, {ejabberd_config,env_binary_to_list,2, [{file,"/home/git/ejabberd/src/ejabberd_config.erl"}, {line,343}]}, {ejabberd_logger,get_log_path,0, [{file,"/home/git/ejabberd/src/ejabberd_logger.erl"}, {line,55}]},
This commit is contained in:
parent
3d89c9199c
commit
263e1f59f7
1 changed files with 6 additions and 1 deletions
|
@ -340,7 +340,12 @@ may_hide_data(Data) ->
|
|||
-spec env_binary_to_list(atom(), atom()) -> {ok, any()} | undefined.
|
||||
env_binary_to_list(Application, Parameter) ->
|
||||
%% Application need to be loaded to allow setting parameters
|
||||
application:load(Application),
|
||||
case proplists:is_defined(Application, application:loaded_applications()) of
|
||||
true ->
|
||||
ok;
|
||||
false ->
|
||||
application:load(Application)
|
||||
end,
|
||||
case application:get_env(Application, Parameter) of
|
||||
{ok, Val} when is_binary(Val) ->
|
||||
BVal = binary_to_list(Val),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue