Launchpad has imported 2 comments from the remote bug at https://sourceware.org/bugzilla/show_bug.cgi?id=14969.
If you reply to an imported comment from within Launchpad, your comment will be sent to the remote bug automatically. Read more about Launchpad's inter-bugtracker facilities at https://help.launchpad.net/InterBugTracking. ------------------------------------------------------------------------ On 2012-12-17T17:08:20+00:00 Psimerda wrote: getaddrinfo() with AI_ADDRCONFIG replaces all ::1 with 127.0.0.1 on hosts without non-loopback IPv6 addresses. See the following test result: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether f0:de:f1:b8:6a:ee brd ff:ff:ff:ff:ff:ff inet 84.246.161.88/28 brd 84.246.161.95 scope global eth0 getaddrinfo host="None" hints.ai_flags=AI_ADDRCONFIG: ::1 127.0.0.1 getaddrinfo host="localhost" hints.ai_flags=AI_ADDRCONFIG: 127.0.0.1 127.0.0.1 getaddrinfo host="127.0.0.1" hints.ai_flags=AI_ADDRCONFIG: 127.0.0.1 getaddrinfo host="localhost4" hints.ai_flags=AI_ADDRCONFIG: 127.0.0.1 getaddrinfo host="::1" hints.ai_flags=AI_ADDRCONFIG: ::1 getaddrinfo host="localhost6" hints.ai_flags=AI_ADDRCONFIG: 127.0.0.1 getaddrinfo host="195.47.235.3" hints.ai_flags=AI_ADDRCONFIG: 195.47.235.3 getaddrinfo host="2a02:38::1001" hints.ai_flags=AI_ADDRCONFIG: 2a02:38::1001 getaddrinfo host="info.nix.cz" hints.ai_flags=AI_ADDRCONFIG: 195.47.235.3 getaddrinfo host="www.google.com" hints.ai_flags=AI_ADDRCONFIG: 173.194.39.81 173.194.39.82 173.194.39.80 173.194.39.84 173.194.39.83 Especially notable are: getaddrinfo(localhost) -> 127.0.0.1, 127.0.0.1 (duplicate) getaddrinfo(localhost6) -> 127.0.0.1 (wrong) Contents of /etc/hosts: 127.0.0.1 localhost localhost4 ::1 localhost localhost6 Looks like some sort of black magic someone was trying to solve something. Reply at: https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/582585/comments/2 ------------------------------------------------------------------------ On 2012-12-17T17:09:23+00:00 Psimerda wrote: Testing script: #!/usr/bin/python3 import sys from socket import * hosts = [ None, "localhost", "127.0.0.1", "localhost4", "::1", "localhost6", "195.47.235.3", "2a02:38::1001", "info.nix.cz", "www.google.com", ] for host in hosts: print("getaddrinfo host=\"{}\" hints.ai_flags=AI_ADDRCONFIG:".format(host)) try: for item in getaddrinfo(host, "http", AF_UNSPEC, SOCK_STREAM, SOL_TCP, AI_ADDRCONFIG): print(" {}".format(item[4][0])) except gaierror as error: print(" !! {} !!".format(error)) Reply at: https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/582585/comments/3 -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to eglibc in Ubuntu. https://bugs.launchpad.net/bugs/582585 Title: getaddrinfo() returns duplicate addresses under AI_ADDRCONFIG Status in eglibc: Confirmed Status in eglibc package in Ubuntu: Confirmed Bug description: Presume I have a computer that has no global IPv6 addresses, but a few IPv4 addresses. Applications using getaddrinfo() with hints.ai_flags = AI_ADDRCONFIG set will properly omit IPv6 addresses, HOWEVER they will return duplicate IPv4 addresses. Demonstration code attached. Without IPv6 addresses: # show setup $ grep -w localhost /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback $ ip a s | grep inet inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host inet 192.168.0.4/24 brd 192.168.0.255 scope global eth0 inet6 fe80::226:XXXX:XXXX:XXXX/64 scope link # masked for privacy # compile test case $ gcc -Wall -Wextra -pedantic -O -o libcbug-demo libcbug-demo.c # run test case $ ./libcbug-demo localhost echo Address 1: 127.0.0.1 Address 2: 127.0.0.1 (127.0.0.1 should be listed only once, Solaris 10 for instance achieves that) Now configure a fake IPv6 address (don't do this on hosts with real IPv6 connectivity, it suffices to use your real IPv6 address) and re- run the application: $ ip a a 2001::2001 dev eth0 # set up IPv6 $ ./libcbug-demo localhost echo Address 1: ::1 Address 2: 127.0.0.1 $ ip a d 2001::2001 dev eth0 # deconfigure bogus address (This is fine) Practical consequence: excessive connection retries by applications that possibly take a long time. This isn't Ubuntu specific. ProblemType: Bug DistroRelease: Ubuntu 10.04 Package: libc6 2.11.1-0ubuntu7 ProcVersionSignature: Ubuntu 2.6.32-22.33-generic 2.6.32.11+drm33.2 Uname: Linux 2.6.32-22-generic x86_64 NonfreeKernelModules: fglrx Architecture: amd64 Date: Wed May 19 01:13:51 2010 ProcEnviron: PATH=(custom, no user) LANG=de_DE.UTF-8 SHELL=/bin/bash SourcePackage: eglibc To manage notifications about this bug go to: https://bugs.launchpad.net/eglibc/+bug/582585/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : [email protected] Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp

