Closed as not planned
Description
In this code, I noticed the endpoints are iterated through in the same order each time. We're having some trouble with upstream forwarders and seem to be hitting some rate limits. We have interest in pursuing some caching, but wanted to confirm the behavior that it's going through the same loop each time and trying to the first endpoint in the list?
We're using the following Resolver:
UPSTREAM = Async::DNS::Resolver.new(
[
[:udp, ENV["FORWARDER_2_IP"], 53],
[:tcp, ENV["FORWARDER_2_IP"], 53],
[:udp, ENV["FORWARDER_1_IP"], 53],
[:tcp, ENV["FORWARDER_1_IP"], 53],
],
timeout: 5.0,
)
I assume this means FORWARDER_2_IP
is taking the bulk of it?
There's a branch that'll dump UDP servers:
# We select the protocol based on the size of the data:
if @packet.bytesize > UDP_TRUNCATION_SIZE
@endpoints.delete_if{|server| server[0] == :udp}
end
But assuming they aren't removed from the list, would FORWARDER_2_IP
be hit twice ?
Metadata
Metadata
Assignees
Labels
No labels