Sidney Markowitz writes:
> I've been thinking about why the DNS tests have uneven failures and came
> up with a conjecture. Since DNS queries and replies use UDP, delivery is
> inherently unreliable. What if when many queries are sent out at once
> there is a chance of too many responses appearing at once and some get
> lost? Perhaps my satellite connection makes it worse because the high
> latency and burstiness causes packets to queue up and then try to arrive
> all at once.
> 
> If this is the case, maybe we could configure a maximum number of
> packets to send in the background (bgsend) and put the rest of the query
> packets in a pending send queue. When a reply packet is received and
> removed from the pending reply queue, we could take another packet off
> of the pending send queue and bgsend it. That way we keep things going
> in the background to the maximum extent that still allows it all to work.
> 
> What do you think of this?

as far as I know, in "real world" terms nowadays on most internet links,
UDP is pretty damn reliable most of the time; I would say it's more likely
timeouts, and in particular that scaling-timeout issue you've identified
before.  (Maybe the scaling-timeout algorithm is particularly ill-suited
to satlink latencies/burstiness.)

It might be worth breaking out tcpdump to see if you can observe what's
happening on your line.

Also have you checked /etc/resolv.conf to ensure it's using a good
nameserver first?  remember, Net::DNS only uses the first one listed, it
won't failover like other resolvers do.

Are you happy with putting out an rc3 anyway?

--j.

Reply via email to