diff --git a/src/ejabberd_riak.erl b/src/ejabberd_riak.erl index 82ffe5e3d..575810acc 100644 --- a/src/ejabberd_riak.erl +++ b/src/ejabberd_riak.erl @@ -75,10 +75,12 @@ start_link(Num, Server, Port, _StartInterval, Options) -> is_connected() -> lists:all( fun({_Id, Pid, _Type, _Modules}) when is_pid(Pid) -> - case catch riakc_pb_socket:is_connected(get_random_pid()) of + case catch riakc_pb_socket:is_connected(get_riak_pid(Pid)) of true -> true; _ -> false - end + end; + (_) -> + false end, supervisor:which_children(ejabberd_riak_sup)). %% @private @@ -521,6 +523,9 @@ make_invalid_object(Val) -> get_random_pid() -> PoolPid = ejabberd_riak_sup:get_random_pid(), + get_riak_pid(PoolPid). + +get_riak_pid(PoolPid) -> case catch gen_server:call(PoolPid, get_pid) of {ok, Pid} -> Pid;