Package: rinse
Version: 2.0.1-1
Severity: normal

hi,

rinse failed for me on an IPv6-only host:

    root@vm-buildhost:~# rinse --arch amd64 --distribution centos-6 --directory 
/srv/schroot/centos-6-amd64
    Failed to fetch : http://mirror.bytemark.co.uk/centos/6/os/x86_64/Packages/
        500 Can't connect to mirror.bytemark.co.uk:80 (Network is unreachable)

    root@vm-buildhost:~# 

but the network is fine:

    root@vm-buildhost:~# getent hosts mirror.bytemark.co.uk
    2001:41c8:20:5e6::10 mirror.bytemark.co.uk
    root@vm-buildhost:~# wget -O /dev/null 
http://mirror.bytemark.co.uk/centos/6/os/x86_64/Packages/--2013-03-05 
01:45:11--  http://mirror.bytemark.co.uk/centos/6/os/x86_64/Packages/
    Resolving mirror.bytemark.co.uk (mirror.bytemark.co.uk)... 
2001:41c8:20:5e6::10, 212.110.161.69
    Connecting to mirror.bytemark.co.uk 
(mirror.bytemark.co.uk)|2001:41c8:20:5e6::10|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: unspecified [text/html]
    Saving to: `/dev/null'

        [                <=>                                       ] 1,744,551  
  371K/s   in 4.6s    

    2013-03-05 01:45:16 (371 KB/s) - `/dev/null' saved [1744551]

    root@vm-buildhost:~# 

the problem is that rinse just doesn't even use IPv6:

    root@vm-buildhost:~# strace -s 512 -e trace=network rinse --arch amd64 
--distribution centos-6 --directory /srv/schroot/centos-6-amd64
    socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
    connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 
ENOENT (No such file or directory)
    socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
    connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 
ENOENT (No such file or directory)
    socket(PF_INET6, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 3
    connect(3, {sa_family=AF_INET6, sin6_port=htons(53), inet_pton(AF_INET6, 
"2001:4f8:1:66::201", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
    sendto(3, "W\344\1\0\0\1\0\0\0\0\0\0\6mirror\10bytemark\2co\2uk\0\0\1\0\1", 
39, MSG_NOSIGNAL, NULL, 0) = 39
    recvfrom(3, 
"W\344\201\200\0\1\0\1\0\3\0\7\6mirror\10bytemark\2co\2uk\0\0\1\0\1\300\f\0\1\0\1\0\1M\232\0\4\324n\241E\300\23\0\2\0\1\0\1M\232\0\7\1a\2ns\300\23\300\23\0\2\0\1\0\1M\232\0\4\1b\300E\300\23\0\2\0\1\0\1M\232\0\4\1c\300E\300C\0\1\0\1\0\1M\232\0\4PDP\32\300C\0\1\0\1\0\1M\232\0\4PDP\32\300C\0\34\0\1\0\1M\232\0\20
 
\1A\310\0\2\0\0\0\0\0\0\0\0\0\3\300V\0\1\0\1\0\1M\232\0\4U\21\252N\300f\0\1\0\1\0\1M\232\0\4PDP\33\300f\0\1\0\1\0\1M\232\0\4PDP\33\300f\0\34\0\1\0\1M\232\0\20
 \1A\310\0\2\0\0\0\0\0\0\0\0\0\5", 1024, 0, {sa_family=AF_INET6, 
sin6_port=htons(53), inet_pton(AF_INET6, "2001:4f8:1:66::201", &sin6_addr), 
sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 242
    socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 3
    connect(3, {sa_family=AF_INET, sin_port=htons(80), 
sin_addr=inet_addr("212.110.161.69")}, 16) = -1 ENETUNREACH (Network is 
unreachable)
    Failed to fetch : http://mirror.bytemark.co.uk/centos/6/os/x86_64/Packages/
        500 Can't connect to mirror.bytemark.co.uk:80 (Network is unreachable)

    root@vm-buildhost:~# 

note the last four system calls.  it does an A-record DNS lookup
("...\6mirror\10bytemark\2co\2uk\0\0\1\0\1") and tries to connect over
IPv4, and fails.  it should also try an AAAA-record DNS lookup and
connecting over IPv6 before failing.

-- 
Robert Edmonds
edmo...@debian.org

Attachment: signature.asc
Description: Digital signature

Reply via email to