Using Subversion v1.8.4 to checkout repositories FAILs @ name-resolution
if using a URL-target, rather than an IP-address-target, when resolvers
in /etc/resolv.conf point to nameservers @ addresses.
I raised this issue @ Subversion ML
(http://news.gmane.org/gmane.comp.version-control.subversion.user), and
was advised to bring it to dev@apr.apache.org:
"It is either an APR issue, or a packaging issue. APR's
apr_sockaddr_info_get function, which Subversion uses to resolve
a
hostname, does not have a flag to enable or disable IPv6 DNS
lookups.
All your list above proves is that your APR does not support DNS
lookups
to IPv6 name servers. I don't know whether this is a general
limitation
of APR, or whether your particular version of APR is too old, or
compiled in a way that those lookups are disabled. In any case,
I
suggest you take that question to the APR developers; it's
dev@apr.apache.org.
But please be prepared to give a bit more information about your
environment, starting with your OS version and APR version."
In summary:
(1) if resolv.conf -> IPv4, packaged svn co @ URL-target
====> OK
(2) if resolv.conf -> IPv6, packaged svn co @ URL-target
====> FAIL
(3) if resolv.conf -> IPv4, built-from-src svn co @ URL-target
====> OK
(4) if resolv.conf -> IPv6, built-from-src svn co @ URL-target
====> FAIL
(5) if resolv.conf -> IPv4, packaged svn co @ IPv4-address-target
====> OK
(6) if resolv.conf -> IPv6, packaged svn co @ IPv4-address-target
====> OK
(7) if resolv.conf -> IPv4, built-from-src svn co @ IPv6-address-target
====> OK
(8) if resolv.conf -> IPv6, built-from-src svn co @ IPv6-address-target
====> OK
Q: Is this an APR bug or other config issue?
--darx
Details:
uname -a
Linux darxdev.int 3.7.10-1.16-desktop #1 SMP PREEMPT Fri
May 31 20:21:23 UTC 2013 (97c14ba) x86_64 x86_64 x86_64
GNU/Linux
With each/either of 2 subversion+apr instances:
(1) distro-packaged
rpm -qa | egrep -i "apr|subversion"
libapr1-devel-1.4.8-48.1.x86_64
libapr-util1-devel-1.5.2-39.1.x86_64
libapr1-1.4.8-48.1.x86_64
libapr-util1-1.5.2-39.1.x86_64
subversion-1.8.4-127.1.x86_64
/usr/bin/svn --version --verbose
/usr/bin/apr-1-config --version
1.4.8
/usr/bin/apr-1-config --cppflags --cflags --ldflags --libs
-DLINUX -D_REENTRANT -D_GNU_SOURCE -pthread -lpthread
-ldl
/usr/bin/svn --version --verbose
svn, version 1.8.4 (r1534716)
Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many
people;
see the NOTICE file for more information.
Subversion is open source software, see
http://subversion.apache.org/
The following repository access (RA) modules are
available:
* ra_svn : Module for accessing a repository using the
svn network protocol.
- with Cyrus SASL authentication
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local
disk.
- handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV
protocol using serf.
- using serf 1.3.2
- handles 'http' scheme
- handles 'https' scheme
System information:
* running on x86_64-unknown-linux-gnu
- openSUSE 12 (Dartmout) [Linux 3.7.10-1.16-xen]
* linked dependencies:
- APR 1.4.8 (compiled with 1.4.6)
- APR-Util 1.5.2 (compiled with 1.4.1)
- SQLite 3.7.15.1 (static)
ldd /usr/bin/svn | egrep -i apr
libaprutil-1.so.0 => /usr/lib64/libaprutil-1.so.0
(0x00007fa1753da000)
libapr-1.so.0 => /usr/lib64/libapr-1.so.0
(0x00007fa1751ab000)
(2) locally built
cd /home/darxSVN_TEST
wget http://download.nextag.com/apache/apr/apr-1.4.8.tar.gz
wget http://download.nextag.com/apache/apr/apr-util-1.5.2.tar.gz
wget
http://psg.mtu.edu/pub/apache/subversion/subversion-1.8.4.tar.gz
tar zxvf apr-1.4.8.tar.gz
tar zxvf apr-util-1.5.2.tar.gz
tar zxvf subversion-1.8.4.tar.gz
cd apr-1.4.8
./configure \
--prefix=/home/darxSVN_TEST/apr1 \
--libdir=/home/darxSVN_TEST/apr1/lib64 \
--enable-ipv6
make -j4
make install
cd ../apr-util-1.5.2
./configure \
--prefix=/home/darxSVN_TEST/apr1 \
--libdir=/home/darxSVN_TEST/apr1/lib64 \
--with-apr=/home/darxSVN_TEST/apr1/bin/apr-1-config
make -j4
make install
cd ..
ls -al ./apr1/lib64/*.so
lrwxrwxrwx 1 root root 17 Nov 2 11:50
./apr1/lib64/libapr-1.so -> libapr-1.so.0.4.8*
lrwxrwxrwx 1 root root 21 Nov 2 11:50
./apr1/lib64/libaprutil-1.so -> libaprutil-1.so.0.5.2*
cd ./subversion-1.8.4
LDFLAGS="-L/home/darxSVN_TEST/apr1/lib64
-Wl,-rpath,/home/darxSVN_TEST/apr1/lib64 -laprutil-1 -lapr-1"
LIBS="-laprutil-1 -lapr-1"
make clean
./configure \
--prefix=/home/darxSVN_TEST/svn184 \
--libdir=/home/darxSVN_TEST/svn184/lib64 \
--with-apr=/home/darxSVN_TEST/apr1/bin/apr-1-config \
--with-apr-util=/home/darxSVN_TEST/apr1/bin/apu-1-config \
--with-gnu-ld \
--with-serf
make -j4
make install
ldd /home/darxSVN_TEST/svn184/bin/svn | grep apr
libaprutil-1.so.0 =>
/home/darxSVN_TEST/apr1/lib64/libaprutil-1.so.0
(0x00007f5cdec92000)
libapr-1.so.0 =>
/home/darxSVN_TEST/apr1/lib64/libapr-1.so.0
(0x00007f5cde83b000)
/home/darxSVN_TEST/apr1/bin/apr-1-config --version
1.4.8
/home/darxSVN_TEST/apr1/bin/apr-1-config --cppflags --cflags
--ldflags --libs
-DLINUX -D_REENTRANT -D_GNU_SOURCE -pthread -luuid
-lrt -lcrypt -lpthread -ldl
/home/darxSVN_TEST/svn184/bin/svn --version --verbose
svn, version 1.8.4 (r1534716)
compiled Nov 2 2013, 12:31:46 on
x86_64-unknown-linux-gnu
Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many
people;
see the NOTICE file for more information.
Subversion is open source software, see
http://subversion.apache.org/
The following repository access (RA) modules are
available:
* ra_svn : Module for accessing a repository using the
svn network protocol.
- with Cyrus SASL authentication
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local
disk.
- handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV
protocol using serf.
- using serf 1.3.2
- handles 'http' scheme
- handles 'https' scheme
System information:
* running on x86_64-unknown-linux-gnu
- openSUSE 12 (Dartmout) [Linux 3.7.10-1.16-xen]
* linked dependencies:
- APR 1.4.8 (compiled with 1.4.8)
- APR-Util 1.5.2 (compiled with 1.5.2)
- SQLite 3.8.1 (compiled with 3.8.1)
with resolvers set to IPv4
cat /etc/resolv.conf
nameserver 74.207.241.5
nameserver 74.207.242.5
options rotate
checking hosts
dig A www.nlnetlabs.nl +short
213.154.224.1
dig AAAA www.nlnetlabs.nl +short
2001:7b8:206:1::1
no problems with resolver.
testing SVN co's
S="www.nlnetlabs.nl"
T="svn/nsd/tags/NSD_4_0_0_REL/tpkg/manual"
OK
rm -rf test
/usr/bin/svn co http://$S/$T test
...
Checked out revision 4089.
OK
rm -rf test
/usr/bin/svn co http://213.154.224.1/$T test
...
Checked out revision 4089.
OK
rm -rf test
/usr/bin/svn co http://[2001:7b8:206:1::1]/$T test
...
Checked out revision 4089.
OK
rm -rf test
/home/darxSVN_TEST/svn184/bin/svn co http://$S/$T test
...
Checked out revision 4089.
OK
rm -rf test
/home/darxSVN_TEST/svn184/bin/svn co http://213.154.224.1/$T
test
...
Checked out revision 4089.
OK
rm -rf test
/home/darxSVN_TEST/svn184/bin/svn co
http://[2001:7b8:206:1::1]/$T test
...
Checked out revision 4089.
switching to resolvers set to IPv6
cat /etc/resolv.conf
nameserver 2600:3c01::2
nameserver 2600:3c01::3
options rotate
checking hosts
dig A www.nlnetlabs.nl +short
213.154.224.1
dig AAAA www.nlnetlabs.nl +short
2001:7b8:206:1::1
no problems with resolver
repeat testing SVN co's
rm -rf test
FAIL
/usr/bin/svn co http://$S/$T test
svn: E670002: Unable to connect to a repository at URL
'http://www.nlnetlabs.nl/svn/nsd/tags/NSD_4_0_0_REL/tpkg/manual'
svn: E670002: Name or service not known
OK
rm -rf test
/usr/bin/svn co http://213.154.224.1/$T test
...
Checked out revision 4089.
OK
rm -rf test
/usr/bin/svn co http://[2001:7b8:206:1::1]/$T test
...
Checked out revision 4089.
FAIL
rm -rf test
/home/darxSVN_TEST/svn184/bin/svn co http://$S/$T test
svn: E670002: Unable to connect to a repository at URL
'http://www.nlnetlabs.nl/svn/nsd/tags/NSD_4_0_0_REL/tpkg/manual'
svn: E670002: Name or service not known
OK
rm -rf test
/home/darxSVN_TEST/svn184/bin/svn co http://213.154.224.1/$T
test
...
Checked out revision 4089.
OK
rm -rf test
/home/darxSVN_TEST/svn184/bin/svn co
http://[2001:7b8:206:1::1]/$T test
...
Checked out revision 4089.
|