https://bugzilla.redhat.com/show_bug.cgi?id=1084399
Bug ID: 1084399 Summary: t/comp/parser.t loads modules from system instead from build directory Product: Fedora Version: rawhide Component: perl Assignee: jplesnik@redhat.com Reporter: ppisar@redhat.com QA Contact: extras-qa@fedoraproject.org CC: cweyl@alumni.drew.edu, iarnell@gmail.com, jplesnik@redhat.com, kasal@ucw.cz, perl-devel@lists.fedoraproject.org, ppisar@redhat.com, psabata@redhat.com, rc040203@freenet.de, tcallawa@redhat.com
perl-5.18.2-296.fc21 loads modules from system instead from build directory at some tests. E.g. t/comp/parser.t:
$ LD_PRELOAD=../libperl.so strace -fq -eopen,execve ./perl harness comp/parser.t 2>&1 |grep '"/usr/lib64/perl5/' [pid 13545] open("/usr/lib64/perl5/re.pm", O_RDONLY) = 5 [pid 13545] open("/usr/lib64/perl5/auto/re/re.so", O_RDONLY|O_CLOEXEC) = 5
This is caused by a bug in t/TEST where _cmd() functions forgets to emit "-I" arguments if requested. The _cmd() is called with:
$VAR1 = { 'return_dir' => undef, 'testswitch' => '', 'perl' => './perl', 'file' => '', 'utf8' => '', 'lib' => '../lib', 'run_dir' => undef, 'switch' => '', 'test' => 'comp/parser.t' }; $VAR2 = 'perl';
but it returns:
$VAR1 = './perl comp/parser.t ';
while it should return:
$VAR1 = './perl -I../lib comp/parser.t ';
The fix is to change line:
$cmd = $perl . _quote_args($args) . " $test $redir";
into: my $lib = ($options->{lib} eq '') ? '' : " -I$options->{lib}"; $cmd = $perl . $lib . _quote_args($args) . " $test $redir";
https://bugzilla.redhat.com/show_bug.cgi?id=1084399
--- Comment #1 from Petr Pisar ppisar@redhat.com --- Created attachment 882662 --> https://bugzilla.redhat.com/attachment.cgi?id=882662&action=edit Proposed fix
https://bugzilla.redhat.com/show_bug.cgi?id=1084399
Petr Pisar ppisar@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://rt.perl.org/Ticket/ | |Display.html?id=121579
--- Comment #2 from Petr Pisar ppisar@redhat.com --- Reported to upstream https://rt.perl.org/Ticket/Display.html?id=121579.
https://bugzilla.redhat.com/show_bug.cgi?id=1084399
Petr Pisar ppisar@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #882662|0 |1 is obsolete| |
--- Comment #3 from Petr Pisar ppisar@redhat.com --- Created attachment 882684 --> https://bugzilla.redhat.com/attachment.cgi?id=882684&action=edit Upstream fix ported to 5.18.2
The proposed fix was wrong. Upstream prefers different approach already implemented in this patch.
https://bugzilla.redhat.com/show_bug.cgi?id=1084399
Petr Pisar ppisar@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |CLOSED Fixed In Version| |perl-5.18.2-297.fc21 Resolution|--- |RAWHIDE Assignee|jplesnik@redhat.com |ppisar@redhat.com Last Closed| |2014-04-04 09:49:32
--- Comment #4 from Petr Pisar ppisar@redhat.com --- Different tests still loads:
/usr/lib64/perl5/vendor_perl/auto/HTML/Parser/Parser.so /usr/lib64/perl5/vendor_perl/auto/Params/Util/Util.so /usr/lib64/perl5/vendor_perl/HTML/Entities.pm /usr/lib64/perl5/vendor_perl/HTML/Parser.pm and some /usr/share/perl5 stuff.
But these things did not go away even with originally proposed patch, so they are probably isolated execs of perl.
However this is different story, maybe different bug report.
perl-devel@lists.fedoraproject.org