Bug#1002229: libnet-traceroute-perl: FTBFS: dh_auto_test: error: make -j4 test TEST_VERBOSE=1 returned exit code 2

Lucas Nussbaum lucas at debian.org
Wed Dec 22 20:02:37 GMT 2021


Hi Gregor,

On 22/12/21 at 16:30 +0100, gregor herrmann wrote:
> COntrol: tag -1 + unreproducible moreinfo
> 
> On Tue, 21 Dec 2021 17:33:43 +0100, Lucas Nussbaum wrote:
> 
> > Source: libnet-traceroute-perl
> > Version: 1.15-2
> > Severity: serious
> > Justification: FTBFS
> 
> > > /<<PKGBUILDDIR>>/blib/lib/Net/Traceroute.pm:Net::Traceroute::debug_print:230: Running in debug mode
> > > /<<PKGBUILDDIR>>/blib/lib/Net/Traceroute.pm:Net::Traceroute::debug_print:294: Performing traceroute
> > > /<<PKGBUILDDIR>>/blib/lib/Net/Traceroute.pm:Net::Traceroute::debug_print:487: $VAR1 = bless( {
> > >                  'debug' => 9,
> > >                  'stat' => 2,
> > >                  'host' => 'ip-10-84-232-242',
> > >                  'trace_program' => 'traceroute',
> > >                  'timeout' => 30
> > >                }, 'Net::Traceroute' );
> > > No output from traceroute.  Exec failure? at /<<PKGBUILDDIR>>/blib/lib/Net/Traceroute.pm line 360.
> > > # Looks like your test exited with 255 before it could output anything.
> > > t/95-sys-traceroute.t ......... 
> > > 1..2
> > > Dubious, test returned 255 (wstat 65280, 0xff00)
> > > Failed 2/2 subtests 
> 
> 
> Hi Lucas,
> 
> thanks for your bug report.
> 
> Yesterday evening, 3 of us in the Perl team could not reproduce this
> failure locally. From looking at the test and the actual code, what
> seems to happen is that `traceroute' does not produce _any_ output,
> which is a bit surprising.
> 
> Do you have any idea how this can happen in your test environment or
> any information for us, what is special about it?
> 
> 
> As a side note, the test itself is marked as TODO, i.e. expected to
> fail, with a comment that it's fragile, so we might as well skip it
> completely. - Oh, that comes from our own patch :) And the patch
> headers mention #849933 and #980475.
> 
> Still, seeing the code explode _before_ reaching this stage is
> puzzling.

I tried it again and could reproduce it.

According to execsnoop, what is executed is:
perl             24798  24769    0 /usr/bin/perl t/95-sys-traceroute.t
traceroute       24799  24798    0 /usr/sbin/traceroute -n ip-10-84-232-230
traceroute       24800  24798    0 /usr/sbin/traceroute -n ip-10-84-232-230

However according to exitsnoop, traceroute exits with exit code 2.

I think that what happens is:
1/ the VM hostname is set to ip-10-84-232-230 (or ip-10-84-232-242 in the
bug report)
2/ /etc/hosts is correctly configured to resolve that hostname:
127.0.1.1 ip-10-84-232-230.eu-central-1.compute.internal ip-10-84-232-230
3/ however, schroot does not copy /etc/hosts into the chroot. The
content of /etc/hosts in the chroot does not include the line for 127.0.1.1.
4/ when the test suite runs traceroute on the machine's hostname,
traceroute fails to resolve the hostname, and exits with exit code 2.
5/ for some reason, the test harness thinks the test exited with code 255.

libnet-traceroute-perl seems to be the only package failing to build due
to this condition, so it might be worth fixing in the package, even if
one could argue that it's a bug in the build environment. Maybe
tracerouting to 127.0.0.1 would be enough?

Lucas



More information about the pkg-perl-maintainers mailing list