end
end
- defp get_live_callee(_proxy, [], _index, 0), do: {:error, :no_live_callees}
- defp get_live_callee(_proxy, [], _index, _), do: {:error, :no_live_callees}
+ defp get_live_callee(_proxy, [], _index, 0) do
+ Logger.error("No live callees, tried all replicas")
+ {:error, :no_live_callees}
+ end
+
+ defp get_live_callee(_proxy, [], _index, _) do
+ Logger.error("No live callees, empty result from lookup")
+ {:error, :no_live_callees}
+ end
defp get_live_callee(proxy, callees, index, tries) when is_list(callees) do
{_id, {pid, node}} = c = Enum.at(callees, index)
+ Logger.info("Seeing if live callee #{pid} on node #{node} is up...")
case GenServer.call({proxy, node}, {:is_up, pid}) do
true ->
c
false ->
+ Logger.error("#{pid} on #{node} is not live, trying next")
+
index =
case index + 1 do
ni when ni < length(callees) -> ni
end
end
- defp get_live_callee(_proxy, _, _index, _), do: {:error, :no_live_callees}
+ defp get_live_callee(_proxy, _, _index, _) do
+ Logger.error("No live callees, something odd happened")
+ {:error, :no_live_callees}
+ end
defp send_to_peer(msg, transport, pid) do
transport.send_request(pid, remove_nil_values(msg))