IPv6-only buildds and AI_ADDRCONFIG
Hi,
somewhat recently new official buildds were added with IPv6-only
connectivity. I'm not aware of an announcement, but I noticed this
with #962019, where src:perl suddenly failed to build due to test suite
failures.
This was quickly diagnosed to be a result of passing the AI_ADDRCONFIG
flag to getaddrinfo(3). Quoting from that manual page:
If hints.ai_flags includes the AI_ADDRCONFIG flag, then IPv4 addresses
are returned in the list pointed to by res only if the local system has
at least one IPv4 address configured, and IPv6 addresses are returned
only if the local system has at least one IPv6 address configured.
The loopback address is not considered for this case as valid as a
configured address. This flag is useful on, for example, IPv4-only
systems, to ensure that getaddrinfo() does not return IPv6 socket
addresses that would always fail in connect(2) or bind(2).
We patched the src:perl test suite to work around this, but it soon
became evident that this was not an isolated case.
I've since done a test rebuild of the archive on a system with no internet
connectivity at all but an IPv6 address configured on a non-lo device.
I found a handful of generic "needs-internet" bugs that I've filed separate
bugs about, and 130 build failures related to the IPv6-only setup.
My understanding is that all these failures are latent issues that will
become visible when an IPv6-only buildd happens to try and build such a
package. So they should be fixed; not sure if this should be considered
release critical.
It turns out that a majority of these failures are in the Perl world:
88 of the 130 failures can be fixed just by changing libio-socket-ip-perl.
I've filed #964902 about this.
However, 42 packages remain that are failing for me and not affected
by the libio-socket-ip-perl part of this (or at least not fixed by my
proposed patch in #964902). I've eyeballed many of them and most if
not all have AI_ADDRCONFIG handling in their source code. So I'm pretty
sure of the results, but of course it wouldn't hurt for other people to
recheck them. An easy-ish way to do that should be something like
# unshare -n
# ip li set lo up
# ip dev add dummy0 type dummy
# ip li set dummy0 up
FWIW, while the amount of breakage does not seem massive, I think the
numbers indicate that it might be good at least not to build the stable
suites on these IPv6-only buildds. I'm not sure what the plan is there.
Below is the list of remaining failures; a dd-list is also attached.
A few already have bugs filed but not nearly all.
Apologies in case there are false positives; I've spent quite a bit of
time on this and did what I could to weed those out.
capnproto_0.7.0-6
clamav_0.102.3+dfsg-1
datalad_0.12.6-1
feersum_1.407-2
glib2.0_2.64.3-1
gromacs_2020.2-2
h2o_2.2.5+dfsg2-5
haskell-conduit-extra_1.3.5-1
haskell-http-client_0.6.4.1-1
haskell-http-conduit_2.3.7.3-1
haskell-yesod-core_1.6.18-1
inn2_2.6.3+20200601-1
iodine_0.7.0-9
lbcd_3.5.2-3
libapache2-mod-perl2_2.0.11-2
libpqtypes_1.5.1-5
libvirt_6.0.0-7
m2crypto_0.35.2-2
myproxy_6.2.6-1
nbd_3.20-1
nbdkit_1.20.4-3
neon27_0.31.1-1
ngircd_26-1
nmh_1.7.1-6
nng_1.3.0-1
openconnect_8.10-1
remctl_3.16-4
restinio_0.6.6-1
ruby-em-http-request_1.1.5-2
ruby-em-redis_0.3.0+gh-2
ruby-em-websocket_0.5.1-2
ruby-eventmachine_1.3~pre20190820-g10fb0c4-2
ruby-excon_0.72.0-2
ruby-rack_2.1.1-5
ruby-remcached_0.4.1-3
ruby-sinatra_2.0.8.1-2
ruby-twitter-stream_0.1.16-3
ruby-vcr_5.1.0-2
spamassassin_3.4.4-1
sslsplit_0.5.5-1
stunnel4_5.56+dfsg-3
tendermint-go-p2p_0.0~git20170113.0.3d98f67-1
Happy hacking,
--
Niko Tyni ntyni@debian.org
Alessio Treglia <alessio@debian.org>
tendermint-go-p2p (U)
Alexander Zangerl <az@debian.org>
nmh
Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
clamav (U)
Anton Gladky <gladk@debian.org>
h2o (U)
Apollon Oikonomopoulos <apoikos@debian.org>
h2o
Chris Lamb <lamby@debian.org>
ruby-rack (U)
Christoph Berg <myon@debian.org>
libpqtypes (U)
Christoph Biedl <debian.axhn@manchmal.in-ulm.de>
ngircd
ClamAV Team <pkg-clamav-devel@lists.alioth.debian.org>
clamav
Clint Adams <clint@debian.org>
haskell-conduit-extra (U)
haskell-http-client (U)
haskell-http-conduit (U)
haskell-yesod-core (U)
Damyan Ivanov <dmn@debian.org>
libapache2-mod-perl2 (U)
Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
glib2.0
Debian Go Packaging Team <pkg-go-maintainers@lists.alioth.debian.org>
tendermint-go-p2p
Debian Haskell Group <pkg-haskell-maintainers@lists.alioth.debian.org>
haskell-conduit-extra
haskell-http-client
haskell-http-conduit
haskell-yesod-core
Debian Libvirt Maintainers <pkg-libvirt-maintainers@lists.alioth.debian.org>
libvirt
Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
feersum
libapache2-mod-perl2
Debian PostgreSQL Maintainers <team+postgresql@tracker.debian.org>
libpqtypes
Debian Python Modules Team <python-modules-team@lists.alioth.debian.org>
m2crypto (U)
Debian QA Group <packages@qa.debian.org>
lbcd
Debian Ruby Extras Maintainers <pkg-ruby-extras-maintainers@lists.alioth.debian.org>
ruby-em-http-request
ruby-em-redis
ruby-em-websocket
ruby-eventmachine
ruby-excon
ruby-rack
ruby-remcached
ruby-sinatra
ruby-twitter-stream
ruby-vcr
Debichem Team <debichem-devel@lists.alioth.debian.org>
gromacs
Dominic Hargreaves <dom@earth.li>
libapache2-mod-perl2 (U)
Felix Salfelder <felix@salfelder.org>
restinio
gregor herrmann <gregoa@debian.org>
iodine
libapache2-mod-perl2 (U)
Guido Günther <agx@sigxcpu.org>
libvirt (U)
Hilko Bengen <bengen@debian.org>
nbdkit
sslsplit
Iain Lane <laney@debian.org>
glib2.0 (U)
Ivan Kohler <ivan-debian@420.am>
libapache2-mod-perl2 (U)
Jonas Genannt <jonas.genannt@capi2name.de>
ruby-twitter-stream (U)
Laszlo Boszormenyi (GCS) <gcs@debian.org>
neon27
nng
stunnel4 (U)
Laurent Arnoud <laurent@spkdev.net>
ruby-eventmachine (U)
Laurent Léonard <laurent@open-minds.org>
libvirt (U)
Luca Boccassi <bluca@debian.org>
openconnect (U)
Lucas Nussbaum <lucas@debian.org>
ruby-rack (U)
Manas Kashyap <manaskashyaptech@gmail.com>
ruby-em-websocket (U)
Marco d'Itri <md@linux.it>
inn2
Mathieu Parent <sathieu@debian.org>
ruby-vcr (U)
Mattias Ellert <mattias.ellert@physics.uu.se>
myproxy
Michael Hanke <mih@debian.org>
datalad (U)
Michael Meskes <meskes@debian.org>
clamav (U)
Michael Tautschnig <mt@debian.org>
clamav (U)
Mike Miller <mtmiller@debian.org>
openconnect
NeuroDebian Team <team@datalad.org>
datalad
Nicholas Breen <nbreen@debian.org>
gromacs (U)
Niko Tyni <ntyni@debian.org>
libapache2-mod-perl2 (U)
Noah Meyerhans <noahm@debian.org>
spamassassin
Paul van Tilburg <paulvt@debian.org>
ruby-eventmachine (U)
ruby-rack (U)
Per Andersson <avtobiff@gmail.com>
ruby-eventmachine (U)
Peter Pentchev <roam@debian.org>
stunnel4
Pirate Praveen <praveen@debian.org>
ruby-em-redis (U)
ruby-excon (U)
ruby-sinatra (U)
ruby-twitter-stream (U)
Praveen Arimbrathodiyil <praveen@debian.org>
ruby-remcached (U)
Russ Allbery <rra@debian.org>
remctl
Sandro Tosi <morph@debian.org>
m2crypto
Scott Kitterman <scott@kitterman.com>
clamav (U)
Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
clamav (U)
Tollef Fog Heen <tfheen@debian.org>
ruby-em-http-request (U)
Tom Lee <debian@tomlee.co>
capnproto
tony mancill <tmancill@debian.org>
capnproto (U)
iodine (U)
Utkarsh Gupta <utkarsh@debian.org>
ruby-excon (U)
ruby-rack (U)
Wouter Verhelst <wouter@debian.org>
nbd
Xavier Guimard <yadd@debian.org>
feersum (U)
libapache2-mod-perl2 (U)
Yaroslav Halchenko <debian@onerussian.com>
datalad (U)
Youhei SASAKI <uwabami@gfd-dennou.org>
ruby-rack (U)
ruby-sinatra (U)
Reply to: