FS#12517 - DNS over IPv6 not working again, this time a client-side glibc issue

Attached to Project: Arch Linux
Opened by Andrej Podzimek (andrej) - Saturday, 20 December 2008, 16:16 GMT
Last edited by Allan McRae (Allan) - Wednesday, 13 May 2009, 14:08 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Jan de Groot (JGC)
Andreas Radke (AndyRTR)
Allan McRae (Allan)
Architecture All
Severity Critical
Priority Normal
Reported Version None
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 3
Private No

Details

Description:

Glibc does not use DNS over IPv6. When resolv.conf contains *only* IPv6 name servers:

* Resolving works fine in glibc 2.8-3 and 2.9-1.

* Resolving fails completely in glibc 2.9-2.

Additional info:

Resolving *always* works when I use dig, regardless the glibc version. The output shows the correct (IPv6) name server. When dig works and the rest of the world fails, it must be a client-side glibc issue.

* package version(s)
2.9-2

Steps to reproduce:

Edit /etc/resolv.conf so that it contains only one name server. The name server must have an IPv6 address. (Mind the IPv6 bug in BIND! (http://bugs.archlinux.org/task/11166?project=1&opened=3107) Make sure you have an IPv6 enabled build.)

Now gethostip, ping, ssh and the like won't resolve. However, dig will still work perfectly.

Whey you change ::1 to 127.0.0.1, resolving will work everywhere, both in dig and in glibc.

Footnote:

Let's see the diff: http://repos.archlinux.org/viewvc.cgi/glibc/repos/core-i686/PKGBUILD?r1=19337&r2=21686

This is *obviously* caused by the weird patchset from RedHat/Fedora. Yes, glibc's behaviour has changed... But I think it's better to break some old incompatible programs rather than DNS over IPv6. (Those programs need to get fixed anyway.) This is a disaster for all IPv6-only LANs.

BTW, please note that wget *does* resolve under ArchLinux with glibc version 2.9-1. (Those reports here https://bugzilla.redhat.com/show_bug.cgi?id=459756 are probably a RedHat-specific issue only.)

Compiled and tested 2.9-1 right now and haven't found any errors. DNS over IPv6 works fine there.
This task depends upon

Closed by  Allan McRae (Allan)
Wednesday, 13 May 2009, 14:08 GMT
Reason for closing:  Fixed
Additional comments about closing:  glibc-2.10.1 in [testing]
Comment by Andrej Podzimek (andrej) - Saturday, 20 December 2008, 16:22 GMT
> Whey you change ::1 to 127.0.0.1

Sorry for this piece of confusion. This would apply only if you used a caching DNS on the local machine. (Which I tried too, just to test my assumption...)
Comment by Andreas Radke (AndyRTR) - Saturday, 20 December 2008, 21:08 GMT
for now stay with glibc 2.9-1. you are not alone:

https://bugzilla.redhat.com/show_bug.cgi?id=459756 (see last comment from 15th Dez.) and

http://sources.redhat.com/bugzilla/show_bug.cgi?id=7060

please watch and report your issue there. Fedora/RedHat are the "upstream" developers we usually follow.
Comment by Arvid Norlander (AnMaster) - Wednesday, 11 March 2009, 10:54 GMT
Any progress on this?
Comment by Andrej Podzimek (andrej) - Wednesday, 11 March 2009, 14:55 GMT
Simply omitting those two Fedora patches does the trick. They do not solve any bug and just make things worse. It's not a problem for me, since I compile the whole system from ABS anyway. However, it could be a showstopper for users (and newbies) who don't know about this issue. Fortunately, not many of them need to talk to a IPv6-only DNS. ;-)
Comment by Arvid Norlander (AnMaster) - Thursday, 12 March 2009, 11:11 GMT
A workaround in my case was setting up dnsmasq locally and have it forward to the IPv6 DNS server, and then put 127.0.0.1 in resolv.conf. In my case the system running Arch is IPv6 only, so I couldn't use an IPv4 DNS server even if I wanted.

Loading...