On 03/26/2013 09:33 PM, Amos Jeffries wrote: > Squid has a partial implementation of happy eyeballs added to 3.2+ which > performs the parallel DNS lookup portion of the algorithm AFAICT Squid waits for the slowest of those two parallel DNS lookups. For example, when the AAAA query fails on some remote DNS resolver, it may take many seconds before the failure reaches Squid. Meanwhile, Squid will be sitting on a perfectly good A answer, doing nothing. I do not think the Happy Eyeballs RFC covers this case explicitly, but the lack of smarter code in this area kind of violates the spirit of RFC 6555 Section 5.4 recommendations that talk about ordering DNS records and starting with the first address in "host's address preference policy" order. Somebody could add Squid code that would, for example, honor dns_v4_first setting (or some new option) when deciding whether to wait for the other DNS answer. It would be difficult to implement this correctly because the slow answer may be a valid one (not a DNS error) and would need to be propagated to the code that opens TCP connections (in case an alternative is needed). Furthermore, the delay problem might be mitigated (for subsequent requests) by negative DNS caching (I have not tested that). However, perhaps we should still welcome patches implementing a smarter algorithm in this area. Cheers, Alex.