Bug#535833: marked as done (general: Slow internet on iceweasel, epiphany and so on...)
]] Roger Leigh
| On Sun, Aug 02, 2009 at 08:39:46AM +0200, Tollef Fog Heen wrote:
| > ]] Roger Leigh
| > | Having working local networking is important. We wouldn't consider
| > | broken IPv4 loopback acceptable, and broken IPv6 loopback is just as
| > | bad.
| > Sure, having it working is important. Is it more important than keeping
| > those (often new) users for whom Debian appears useless because of its
| > perceived poor network performance?
| It would be nice if both worked. But, in the absence of good heuristics
| for detecting broken networking, this is probably something that should
| not be done automatically.
Both would be nice, of course. Sometimes you have to choose between
having the cake and eating it, though.
| > Anyway, IIRC this is now solved in glibc by sending out the queries in
| > parallel and returning the first answer you get.
| OK. What happens to the other answer(s) though? Does this mean that
| getaddrinfo(3) skips slow replies completely? This is surely equally
| broken if so?
Unsure. The man page for getaddrinfo doesn't seem to imply that you get
all answers if you specify AF_UNSPEC, it specifies «any». Your test
program does get both the A and the AAAA record, so my recollection of
this might be incorrect.
| > | The idea behind the patch isn't bad, but the implementation proposed
| > | here is too naïve. The assumption that you only want working IPv6
| > | name resolution when you have a globally-scoped IPv6 address is too
| > | simplistic.
| > FWIW, it roughly matches what Mac OS X and Windows do.
| And it's not considered broken on these platforms too?
You're talking about 0.07% of the users for Windows Vista (and 0.03% for
XP), Mac OS X is at a whopping 2.4%. I doubt many users would see if
their IPv6 was broken since there are few/no IPv6 services out there.
| Probably not conciously; it's intended to be used automatically. A
| quick google shows Avahi does use these (with some caveats).
| IPv6 has the concept of "Scope", and these scopes include Node/Host,
| Link, Site, Organisation, and Global. To assume that IPv6 networking
| is only active when you have one or more Global addresses is an
| incorrect assumption. With the previous glibc patch, my networking
| broke as the Global link went up and down.
It did actually put the threshold at site, not global, since people
could reasonably put site-only names into DNS, but link-local addresses
shouldn't be in DNS.
Tollef Fog Heen
UNIX is user friendly, it's just picky about who its friends are