Skip Menu |

This queue is for tickets about the Test-Harness CPAN distribution.

Report information
The Basics
Id: 30683
Status: resolved
Priority: 0/
Queue: Test-Harness

People
Owner: andy [...] hexten.net
Requestors: gottreu [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: inc-propagation test fails
Date: Mon, 12 Nov 2007 17:02:23 -0600
To: bug-test-harness [...] rt.cpan.org
From: "Brian Gottreu" <gottreu [...] gmail.com>
When using 'make test' it just hangs at inc-propagation (stalls for at least 5 minutes), but 'Build test' actually fails. I'm using CentOS 4.4. # uname -a Linux mail2.foo.net 2.6.9-42.0.8.ELsmp #1 SMP Tue Jan 30 12:33:47 EST 2007 i686 i686 i386 GNU/Linux # perl -v This is perl, v5.8.5 built for i386-linux-thread-multi What other information do I need to supply, or are there other tests I should perform? This problem makes installing Bundle::CPAN hang too. There are two near identical machines, and this error occurs on both. This is the output of ./Build test: [root@mail2 Test-Harness-3.00]# ./Build test t/000-load........................1/56 # Testing Test::Harness 3.00, Perl 5.008005, /usr/bin/perl t/000-load........................ok t/aggregator......................ok t/bailout.........................ok t/base............................ok t/callbacks.......................ok t/compat/failure..................ok t/compat/inc-propagation.......... t/compat/inc-propagation..........1/2 # Failed test '@INC propagated to test' # at inc_check_taint.t.tmp line 59. # Structures begin differing at: # $got->[3] = '/usr/lib/perl5/5.8.5/i386-linux-thread-multi' # $expected->[3] = 'blib/lib/5.8.5/i386-linux-thread-multi' # wibble, # t/lib, # blib/lib, # /usr/lib/perl5/5.8.5/i386-linux-thread-multi, # /usr/lib/perl5/5.8.5, # /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.5, # /usr/lib/perl5/site_perl/5.8.4, # /usr/lib/perl5/site_perl/5.8.3, # /usr/lib/perl5/site_perl/5.8.2, # /usr/lib/perl5/site_perl/5.8.1, # /usr/lib/perl5/site_perl/5.8.0, # /usr/lib/perl5/site_perl, # /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.5, # /usr/lib/perl5/vendor_perl/5.8.4, # /usr/lib/perl5/vendor_perl/5.8.3, # /usr/lib/perl5/vendor_perl/5.8.2, # /usr/lib/perl5/vendor_perl/5.8.1, # /usr/lib/perl5/vendor_perl/5.8.0, # /usr/lib/perl5/vendor_perl # ----------------- # wibble, # t/lib, # blib/lib, # blib/lib/5.8.5/i386-linux-thread-multi, # blib/lib/5.8.5, # blib/lib/i386-linux-thread-multi, # blib/lib/5.8.4, # blib/lib/5.8.3, # blib/lib/5.8.2, # blib/lib/5.8.1, # blib/lib/5.8.0, # /usr/lib/perl5/5.8.5/i386-linux-thread-multi, # /usr/lib/perl5/5.8.5, # /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.5, # /usr/lib/perl5/site_perl/5.8.4, # /usr/lib/perl5/site_perl/5.8.3, # /usr/lib/perl5/site_perl/5.8.2, # /usr/lib/perl5/site_perl/5.8.1, # /usr/lib/perl5/site_perl/5.8.0, # /usr/lib/perl5/site_perl, # /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.5, # /usr/lib/perl5/vendor_perl/5.8.4, # /usr/lib/perl5/vendor_perl/5.8.3, # /usr/lib/perl5/vendor_perl/5.8.2, # /usr/lib/perl5/vendor_perl/5.8.1, # /usr/lib/perl5/vendor_perl/5.8.0, # /usr/lib/perl5/vendor_perl # Looks like you failed 1 test of 2. # Failed test at t/compat/inc-propagation.t line 65. # got: '1' # expected: '0' # Failed test '@INC propagated to test' # at inc_check.t.tmp line 60. # Structures begin differing at: # $got->[3] = 'wibble/5.8.5/i386-linux-thread-multi' # $expected->[3] = 'blib/lib/5.8.5/i386-linux-thread-multi' # wibble, # t/lib, # blib/lib, # wibble/5.8.5/i386-linux-thread-multi, # wibble/5.8.5, # wibble/i386-linux-thread-multi, # wibble/5.8.4, # wibble/5.8.3, # wibble/5.8.2, # wibble/5.8.1, # wibble/5.8.0, # t/lib/5.8.5/i386-linux-thread-multi, # t/lib/5.8.5, # t/lib/i386-linux-thread-multi, # t/lib/5.8.4, # t/lib/5.8.3, # t/lib/5.8.2, # t/lib/5.8.1, # t/lib/5.8.0, # blib/lib/5.8.5/i386-linux-thread-multi, # blib/lib/5.8.5, # blib/lib/i386-linux-thread-multi, # blib/lib/5.8.4, # blib/lib/5.8.3, # blib/lib/5.8.2, # blib/lib/5.8.1, # blib/lib/5.8.0, # /usr/lib/perl5/5.8.5/i386-linux-thread-multi, # /usr/lib/perl5/5.8.5, # /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.5, # /usr/lib/perl5/site_perl/5.8.4, # /usr/lib/perl5/site_perl/5.8.3, # /usr/lib/perl5/site_perl/5.8.2, # /usr/lib/perl5/site_perl/5.8.1, # /usr/lib/perl5/site_perl/5.8.0, # /usr/lib/perl5/site_perl, # /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.5, # /usr/lib/perl5/vendor_perl/5.8.4, # /usr/lib/perl5/vendor_perl/5.8.3, # /usr/lib/perl5/vendor_perl/5.8.2, # /usr/lib/perl5/vendor_perl/5.8.1, # /usr/lib/perl5/vendor_perl/5.8.0, # /usr/lib/perl5/vendor_perl # ----------------- # wibble, # t/lib, # blib/lib, # blib/lib/5.8.5/i386-linux-thread-multi, # blib/lib/5.8.5, # blib/lib/i386-linux-thread-multi, # blib/lib/5.8.4, # blib/lib/5.8.3, # blib/lib/5.8.2, # blib/lib/5.8.1, # blib/lib/5.8.0, # /usr/lib/perl5/5.8.5/i386-linux-thread-multi, # /usr/lib/perl5/5.8.5, # /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi, # /usr/lib/perl5/site_perl/5.8.5, # /usr/lib/perl5/site_perl/5.8.4, # /usr/lib/perl5/site_perl/5.8.3, # /usr/lib/perl5/site_perl/5.8.2, # /usr/lib/perl5/site_perl/5.8.1, # /usr/lib/perl5/site_perl/5.8.0, # /usr/lib/perl5/site_perl, # /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi, # /usr/lib/perl5/vendor_perl/5.8.5, # /usr/lib/perl5/vendor_perl/5.8.4, # /usr/lib/perl5/vendor_perl/5.8.3, # /usr/lib/perl5/vendor_perl/5.8.2, # /usr/lib/perl5/vendor_perl/5.8.1, # /usr/lib/perl5/vendor_perl/5.8.0, # /usr/lib/perl5/vendor_perl # Looks like you failed 1 test of 2. # Failed test at t/compat/inc-propagation.t line 65. # got: '1' # expected: '0' # Looks like you failed 2 tests of 2. t/compat/inc-propagation.......... Dubious, test returned 2 (wstat 512, 0x200) Failed 2/2 subtests t/compat/inc_taint................ok t/compat/nonumbers................ok t/compat/regression...............ok t/compat/test-harness-compat......ok t/compat/version..................ok t/console.........................ok t/errors..........................ok t/grammar.........................ok t/harness.........................ok t/iterators.......................ok t/multiplexer.....................ok t/nofork-mux......................ok t/nofork..........................ok t/parse...........................ok t/premature-bailout...............ok t/prove...........................ok t/proverun........................ok t/regression......................ok t/results.........................ok t/source..........................ok t/spool...........................ok t/streams.........................ok t/taint...........................ok t/unicode.........................ok t/yamlish-output..................ok t/yamlish-writer..................ok t/yamlish.........................ok Test Summary Report ------------------- t/compat/inc-propagation.t (Wstat: 512 Tests: 2 Failed: 2) Failed test number(s): 1-2 Non-zero exit status: 2 Files=34, Tests=10215, 15 wallclock secs ( 2.89 usr 0.25 sys + 11.01 cusr 2.03 csys = 16.18 CPU) Result: FAIL
Hi Brian, Yes - it's a problem with the RHEL patched Perl. They have some magic in there that expands paths found on PERL5LIB to include a number of version prefixes. This should be fixed in 3.01 which is on its way to CPAN. Unfortunately CPAN updating is stalled just now. The fix didn't require any changes to Test::Harness - it just skips that test if it detects the patched Perl - so you can safely ignore the failure if you'd like to install 3.00 - or wait until 3.01 hits CPAN. Thanks for the report.
Subject: Re: [rt.cpan.org #30683] inc-propagation test fails on redhat derivatives
Date: Mon, 12 Nov 2007 15:33:14 -0800
To: bug-Test-Harness [...] rt.cpan.org
From: Eric Wilhelm <scratchcomputing [...] gmail.com>
# from Brian Gottreu via RT # on Monday 12 November 2007 15:03: Show quoted text
>When using 'make test' it just hangs at inc-propagation (stalls for at >least 5 minutes), but 'Build test' actually fails. > >I'm using CentOS 4.4.
# from Andy Armstrong via RT on Monday 12 November 2007 15:18: Show quoted text
>This should be fixed in 3.01
I guess we're not certain why 'make test' hangs though (none of the developers are running a redhat system.) Show quoted text
>... Unfortunately CPAN updating is stalled just now.
For the impatient/ambitious debugger: http://svn.hexten.net/tapx/tags/3.01 or http://svn.hexten.net/tapx/trunk To elaborate a bit: This is an issue with the strange @INC handling patch that redhat has added to their perl. It has to do with the versioned directories (which don't exist) being added to the @INC. This causes unexpected oddities when trying to compare $PERL5LIB and/or @INC across process boundaries. http://www.filewatcher.com/p/perl-5.8.5-9.src.rpm.11782070/perl-5.8.5-incpush.patch.html # from Andy Armstrong via RT on Monday 12 November 2007 15:18: Show quoted text
>They have some magic in there that expands >paths found on PERL5LIB to include a number of version prefixes.
(correction: suffixes) Note the large number of "5.8.n" and "5.8.n/i386-linux-thread-multi" entries. # blib/lib, # blib/lib/5.8.5/i386-linux-thread-multi, # blib/lib/5.8.5, --Eric
Subject: Re: [rt.cpan.org #30683] inc-propagation test fails on redhat derivatives
Date: Mon, 12 Nov 2007 21:02:27 -0600
To: bug-Test-Harness [...] rt.cpan.org
From: "Brian Gottreu" <gottreu [...] gmail.com>
On Nov 12, 2007 5:38 PM, Eric Wilhelm via RT <bug-Test-Harness@rt.cpan.org> wrote: Show quoted text
> <URL: http://rt.cpan.org/Ticket/Display.html?id=30683 > > To elaborate a bit: This is an issue with the strange @INC handling > patch that redhat has added to their perl. It has to do with the > versioned directories (which don't exist) being added to the @INC. > This causes unexpected oddities when trying to compare $PERL5LIB and/or > @INC across process boundaries.
Unless I'm confused all @INC directories are existent. perl -e 'for(@INC){print "$_\n" unless -e $_}' returns nothing. Brian
Subject: Re: [rt.cpan.org #30683] inc-propagation test fails on redhat derivatives
Date: Mon, 12 Nov 2007 21:24:59 -0800
To: bug-Test-Harness [...] rt.cpan.org
From: Eric Wilhelm <scratchcomputing [...] gmail.com>
# from Brian Gottreu via RT # on Monday 12 November 2007 19:02: Show quoted text
>It has to do with the >
>> versioned directories (which don't exist) being added to the @INC. >> This causes unexpected oddities when trying to compare $PERL5LIB >> and/or @INC across process boundaries.
> >Unless I'm confused all @INC directories are existent.
Perhaps. The troubles come when @INC gets changed. The redhat patch does strange things. Compare to a more ordinary perl: Show quoted text
>perl -e 'for(@INC){print "$_\n" unless -e $_}'
$ rmdir wibble $ perl -e 'use lib "wibble"; for(@INC){print "$_\n" unless -e $_}' wibble You'll probably see "wibble/5.8.5" and others like it. On a typical perl, the "wibble/5.8.5" dir would be automagically added to @INC if (and only if) it exists at the time. $ perl -e 'use lib "wibble"; print join ", ", grep /^wibble/, @INC; wibble $ mkdir wibble $ perl -e 'use lib "wibble"; print join ", ", grep /^wibble/, @INC; wibble $ mkdir wibble/5.8.8 $ perl -e 'use lib "wibble"; print join ", ", grep /^wibble/, @INC; wibble/5.8.8, wibble --Eric
I've just tested 3.01 (which is now available on CPAN) on a CentOS 4.4 installation. My CentOS 4.4 has the @INC patch and 3.01 works fine with it - t/inc-propagation.t skips. Incidentally, the easiest way to see the problematic behaviour is $ PERL5LIB=foo perl -e 'print join qq{\n}, @INC' On my CentOS 4.4 that outputs a list of paths that starts like this: foo/5.8.5/i386-linux-thread-multi foo/5.8.5 foo/i386-linux-thread-multi foo/5.8.4 foo/5.8.3 foo/5.8.2 foo/5.8.1 foo/5.8.0 foo
Subject: Re: [rt.cpan.org #30683] Resolved: inc-propagation test fails on redhat derivatives
Date: Tue, 13 Nov 2007 14:11:28 -0600
To: bug-Test-Harness [...] rt.cpan.org
From: "Brian Gottreu" <gottreu [...] gmail.com>
On Nov 13, 2007 12:07 PM, Andy Armstrong via RT <bug-Test-Harness@rt.cpan.org> wrote: Show quoted text
Just to muddy the waters yet again. (I literally have no idea whether I'm providing useful info, or just wasting other people's time.) The Test::Harness 3.00 inc-propagation test passed fine on a CentOS 5.0 system with perl 5.8.8, and on RHEL AS 3 with perl 5.8.0, but either failed or hung (depending on invocation) on CentOS 4.4 with perl 5.8.5. Similarly, the (PERL5LIB=foo perl -e 'print join qq{\n}, @INC') one-liner only does the automagical versioning of foo on CentOS 4.4, and not the other 2 redhat and redhat derivative versions. And the 3.01 patch does work on the one misbehaving system. Brian Gottreu
On Tue Nov 13 15:12:10 2007, gottreu@gmail.com wrote: Show quoted text
> Just to muddy the waters yet again. (I literally have no idea whether > I'm providing useful info, or just wasting other people's time.) > > The Test::Harness 3.00 inc-propagation test passed fine on a CentOS > 5.0 system with perl 5.8.8, and on RHEL AS 3 with perl 5.8.0, but > either failed or hung (depending on invocation) on CentOS 4.4 with > perl 5.8.5. > > Similarly, the (PERL5LIB=foo perl -e 'print join qq{\n}, @INC') > one-liner only does the automagical versioning of foo on CentOS 4.4, > and not the other 2 redhat and redhat derivative versions. > > And the 3.01 patch does work on the one misbehaving system.
Thanks Brian. That confirms expected behaviour - so it's nice to know it's working. Thanks again for your report.