Package: libio-socket-ssl-perl Version: 2.023-1 User: [email protected] Usertags: perl-5.22-transition
As seen on https://tests.reproducible-builds.org/rb-pkg/unstable/amd64/libio-socket-ssl-perl.html the test suite of this package hangs if there are no network interfaces other than 'lo' on the build system. t/acceptSSL-timeout.t fails with 1..15 ok # listening @127.0.0.1:55914 # server >> OK Waiting << ok # [server] OK ok # [server] Waiting # client_ssl >> OK << ok # [client_ssl] OK not ok # [server] Connect from not ok # fatal error at ./t/testlib.pl line 168. and t/alpn.t hangs with 1..5 ok # [server] Server Initialization at 127.0.0.1 # server at 127.0.0.1:39579 not ok # [client] connect failed: IO::Socket::IP configuration failed This is easy to test with Linux network namespaces, using 'unshare -n' and 'ip li set lo up' or something like that. This is pretty much what pbuilder does with USENETWORK=no. The issue is similar to #759799 / [rt.cpan.org #98328]. Starting with Perl 5.22 (IO::Socket::IP 0.31), IO::Socket::SSL uses IO::Socket::IP for the underlying sockets. IO::Socket::IP configures sockets with getaddrinfo(3), using the AI_ADDRCONFIG flag by default. Quoting getaddrinfo(3): 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. which fails if there's just the loopback interface. This can be overridden by providing GetAddrInfoFlags to the socket, as was done in the IO::Socket::IP test suite to fix the above issues. However, sprinkling such fixes all over reverse dependencies does seem somewhat wrong to me... In any case, at least the hanging test suite is nasty and needs fixing. -- Niko Tyni [email protected]

