[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#519774: libc6: causes many programs not to be able to resolve dns addresses



forcemerge 516218 519774
thanks

On Sun, Mar 15, 2009 at 07:20:42AM +0100, Petr Vandrovec wrote:
> Hello,
>   it seems that DNS resolver is grossly confused, and sends
> two DNS requests on same socket back to back (strace below is
> from 'lynx http://www.jeep.com').  In first one DNS server
> responded only to second packet sent by resolver, and resolve
> failed (after that mdns was tried, and eventually lynx reported
> error that www.jeep.com does not exist).  In second one DNS
> server responded only to first packet (in my tests I've never
> seen DNS server responding to both requests), and although DNS
> resolver still uselessly waited for 5 seconds, slowing web browsing
> to being almost unusable, after that 5 seconds DNS resolver
> declared success, and moved on.
> 
> My /etc/resolv.conf is:
> 
> gwy:~# cat /etc/resolv.conf
> domain hsd1.ca.comcast.net.
> search hsd1.ca.comcast.net.
> nameserver 68.87.76.178
> nameserver 68.87.78.130
> nameserver 68.87.69.146
> gwy:~#
> 
> It seems to be caused by __libc_res_nquery always sending both
> T_A and T_AAAA request when T_UNSPEC query is being sent, and
> getting confused when only T_AAAA reply arrives.
> 

The problem is that the DNS server of your ISP does not conform to the
RFC and only answer to the AAAA query with a void answer. It never
answer to the A query, so the glibc resolver can only conclude the whole
query has no answer.

This is a known problem, upstream has said he is working on a
workaround, but you should definitely talk to your ISP first, as the

-- 
Aurelien Jarno	                        GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net



Reply to: