On Wed, 30 Mar 2011 02:22:32 +0200, p...@0ne.us <p...@0ne.us> wrote:

Hello,

    I just got this FAIL report today from CPANTesters:

http://www.cpantesters.org/cpan/report/0ee8eb99-6c5d-1014-a630-0d8a02da96e1

    As you can see, the prereq is correctly recognized by the toolchain
and loaded - it's even in the lengthy @INC list, BUT when executing the
test script it seems like @INC disappears somehow? Since I don't know
the details of your setup I have to assume something is broken.

    Can you verify that it's not a problem with just my module? There's
no easy way to search the cpantesters database for all of your reports
so I can check to see if you've been sending bad FAILs or not. Can you
please test my module by hand to see if it really works? Thanks!

    I suspect it's something to do with MSWin32 limitations, as I have
received several other FAILs in the past with the same symptoms as this
one. However, as I don't have access to a box now I can't quickly test
my theory out. I have sent an email to the list several weeks ago but
seems like everyone was busy :(

    The subject was "Weird failures from smokers on MSWin32?"

    Thanks again for your assistance with this and again, BIG THANKS for
running a smoker! :)

~Apocalypse


I reproduced this case and it seems that this might actually be a Perl bug. 
Situation is as follows:

My CPAN is still 1.9402 and configured to reuse_build_dir.

This means that in order to run a test on a module, it will throw *all* the 
build dirs in ~/.cpan/build into $ENV{PERL5LIB}, which i understand is added to 
@INC by the perl executable itself. ( 
http://perldoc.perl.org/perlrun.html#ENVIRONMENT )

Reproduction thus was relatively easy:

Stop the smoker, run cpan, `look` at an affected dist, in my example 
Params::Classify and `make test`. In order to make the output more useful i 
added debug statements to CPAN.pm and gutted the test suite of 
Params::Classify, replacing it with a single test that tries to use the module 
and dumps environment and INC information. Here's the output:

https://gist.github.com/893981

Of note: The test ( https://gist.github.com/893981#L225 ) clearly has a whole 
battery of directories in $ENV{PERL5LIB} ( https://gist.github.com/893981#L247 
) which the perl executable can obviously see, including the Params::Classify 
dir as the very first; since that's a Data::Dumper output of %ENV. However @INC 
remains unchanged by that. ( https://gist.github.com/893981#L579 )

This seems to indicate to me that the perl executable itself is, for whatever 
reason, flat out ignoring the PERL5LIB and/or failing to inject it into @INC. 
Other possibilities include Module::Build messing things up or the Windows Perl 
executable exclusively having issues.

I do not know how to further pursue this issue, but will happily provide any 
assistance needed in digging deeper into this.

(And for now will try to at least follow up bugs FAIL reports with proper 
PASSes by periodically cleaning out /build and removing fails from my 
reports-sent.db.)

--
With regards,
Christian Walde

Reply via email to