Bug 1084399
| Summary: | t/comp/parser.t loads modules from system instead from build directory | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Petr Pisar <ppisar> | ||||||
| Component: | perl | Assignee: | Petr Pisar <ppisar> | ||||||
| Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
| Severity: | unspecified | Docs Contact: | |||||||
| Priority: | unspecified | ||||||||
| Version: | rawhide | CC: | cweyl, iarnell, jplesnik, kasal, perl-devel, ppisar, psabata, rc040203, tcallawa | ||||||
| Target Milestone: | --- | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | Unspecified | ||||||||
| OS: | Unspecified | ||||||||
| URL: | https://rt.perl.org/Ticket/Display.html?id=121579 | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | perl-5.18.2-297.fc21 | Doc Type: | Bug Fix | ||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2014-04-04 13:49:32 UTC | Type: | Bug | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Attachments: |
|
||||||||
Created attachment 882662 [details]
Proposed fix
Reported to upstream <https://rt.perl.org/Ticket/Display.html?id=121579>. Created attachment 882684 [details]
Upstream fix ported to 5.18.2
The proposed fix was wrong. Upstream prefers different approach already implemented in this patch.
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-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";