Skip Menu |

This queue is for tickets about the PAR CPAN distribution.

Report information
The Basics
Id: 119224
Status: resolved
Priority: 0/
Queue: PAR

People
Owner: RSCHUPP [...] cpan.org
Requestors: cqu [...] factset.com
Cc:
AdminCc:

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



Subject: Issue about Can't locate loadable object for module
Date: Tue, 13 Dec 2016 13:51:46 +0000
To: "bug-PAR [...] rt.cpan.org" <bug-PAR [...] rt.cpan.org>
From: Chenchen Qu <cqu [...] factset.com>
Hi: I'm experiencing some difficulty when trying to generate a Linux executable on either redhat 6 or 7, I had different perl version installed 5.22.1 5.24.0 and all appear to have the same issue about Can't locate loadable object for module IO in @INC, it used to work with my 5.22.1 build, but when I try wipe it out and reinstall everything it started having the same issue as 5.24.0. I tried to debug this issue(and still trying to dig into this) and found the issue might come from the DynaLoader.pm. Here's some log that I got: With my working 5.22.1: At the end our pp command: DynaLoader::bootstrap for IO (auto/IO/IO.so) found /tmp/par-637175/cache-11199021a1608d6df9ec28abe5e0ffcd/cb956fef.so for IO DynaLoader::bootstrap for Fcntl (auto/Fcntl/Fcntl.so) found /tmp/par-637175/cache-11199021a1608d6df9ec28abe5e0ffcd/f427f08b.so for Fcntl DynaLoader::bootstrap for Cwd (auto/Cwd/Cwd.so) found /tmp/par-637175/cache-11199021a1608d6df9ec28abe5e0ffcd/79d49540.so for Cwd DynaLoader::bootstrap for Compress::Raw::Zlib (auto/Compress/Raw/Zlib/Zlib.so) found /tmp/par-637175/cache-11199021a1608d6df9ec28abe5e0ffcd/82965e7f.so for Compress::Raw::Zlib DynaLoader::bootstrap for List::Util (auto/List/Util/Util.so) found /tmp/par-637175/cache-11199021a1608d6df9ec28abe5e0ffcd/c75cefe0.so for List::Util DynaLoader::bootstrap for Encode (auto/Encode/Encode.so) found /tmp/par-637175/cache-11199021a1608d6df9ec28abe5e0ffcd/39e584e7.so for Encode DynaLoader::bootstrap for Data::Dumper (auto/Data/Dumper/Dumper.so) found /tmp/par-637175/cache-11199021a1608d6df9ec28abe5e0ffcd/ec5f6c39.so for Data::Dumper DynaLoader::bootstrap for File::Glob (auto/File/Glob/Glob.so) found /tmp/par-637175/cache-11199021a1608d6df9ec28abe5e0ffcd/6f06096d.so for File::Glob DynaLoader::bootstrap for PerlIO::scalar (auto/PerlIO/scalar/scalar.so) found /tmp/par-637175/cache-11199021a1608d6df9ec28abe5e0ffcd/b03ad7bd.so for PerlIO::scalar DynaLoader::bootstrap for Tie::Hash::NamedCapture (auto/Tie/Hash/NamedCapture/NamedCapture.so) found /tmp/par-637175/cache-11199021a1608d6df9ec28abe5e0ffcd/70c28b04.so for Tie::Hash::NamedCapture DynaLoader::bootstrap for attributes (auto/attributes/attributes.so) found /tmp/par-637175/cache-11199021a1608d6df9ec28abe5e0ffcd/fb337197.so for attributes DynaLoader seems to be able to find the share library file in the tmp directory But with 5.24.0: DynaLoader::bootstrap for Cwd (auto/Cwd/Cwd.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/Cwd/Cwd.so for Cwd DynaLoader::bootstrap for IO (auto/IO/IO.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/IO/IO.so for IO DynaLoader::bootstrap for Fcntl (auto/Fcntl/Fcntl.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/Fcntl/Fcntl.so for Fcntl DynaLoader::bootstrap for Compress::Raw::Zlib (auto/Compress/Raw/Zlib/Zlib.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/Compress/Raw/Zlib/Zlib.so for Compress::Raw::Zlib DynaLoader::bootstrap for List::Util (auto/List/Util/Util.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/List/Util/Util.so for List::Util DynaLoader::bootstrap for Encode (auto/Encode/Encode.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/Encode/Encode.so for Encode DynaLoader::bootstrap for Data::Dumper (auto/Data/Dumper/Dumper.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/Data/Dumper/Dumper.so for Data::Dumper dl_findfile() dl_findfile found: DynaLoader::bootstrap for File::Glob (auto/File/Glob/Glob.so) found /tmp/par-637175/cache-3a8e16187c7a034a209ade355b4de22b0efc79d8/99a7eb96.so for File::Glob DynaLoader::bootstrap for PerlIO::scalar (auto/PerlIO/scalar/scalar.so) found /tmp/par-637175/cache-3a8e16187c7a034a209ade355b4de22b0efc79d8/2704eb0c.so for PerlIO::scalar DynaLoader::bootstrap for Tie::Hash::NamedCapture (auto/Tie/Hash/NamedCapture/NamedCapture.so) found /tmp/par-637175/cache-3a8e16187c7a034a209ade355b4de22b0efc79d8/90acfd09.so for Tie::Hash::NamedCapture DynaLoader::bootstrap for attributes (auto/attributes/attributes.so) found /tmp/par-637175/cache-3a8e16187c7a034a209ade355b4de22b0efc79d8/a1227989.so for attributes it couldn't find the share so files in the /tmp directory. I'm not sure whether there's something wrong while copying the so files to the tmp directory, or the Dynaloader can't locate the so files, I'm leaning towards the later. If this is not a bug but a wrong setup due to my perl, I apologize about this spam. Any suggestion would help. Many thanks in advance, Chenchen
Please provide the versions of the following modules that you are using: Module::ScanDeps PAR PAR::Packer Did you build PAR::Packer yourself? Esp. did you run "make test" and it passed? Does this problem show for a simple "hello world" program, e.g. $ pp -o hello.exe -e 'print "hello, world\n"' $ ./hello.exe If yes, please include the complete output produced by running hello.exe. Otherwise, provide a failing example script. Cheers, Roderich
Subject: RE: [rt.cpan.org #119224] Issue about Can't locate loadable object for module
Date: Tue, 13 Dec 2016 15:10:22 +0000
To: "bug-PAR-Packer [...] rt.cpan.org" <bug-PAR-Packer [...] rt.cpan.org>
From: Chenchen Qu <cqu [...] factset.com>
Verisons: 5.22.1: PAR: 1.010 PAR::Packer: 1.033 Module::ScanDeps: 1.21 5.24.0: PAR: 1.013 PAR::Packer: 1.033 (I used cpanm to install this version, 1.038 also fails so I guess this one is not related) Module::ScanDeps: 1.23 I didn't build these manually all files are installed through cpan. (I thought it's a version issue with PAR::Packer so I installed it with cpanm using 1.033) Hellow world test: 5.22.1: Pp log: DynaLoader.pm loaded (/home/user/cqu/perl5/perlbrew/perls/perl-5.22.1/lib/site_perl/5.22.1/x86_64-linux /home/user/cqu/perl5/perlbrew/perls/perl-5.22.1/lib/site_perl/5.22.1 /home/user/cqu/perl5/perlbrew/perls/perl-5.22.1/lib/5.22.1/x86_64-linux /home/user/cqu/perl5/perlbrew/perls/perl-5.22.1/lib/5.22.1 . /home/user/cqu/perl5/perlbrew/perls/perl-5.22.1/lib/site_perl/5.22.1/x86_64-linux /home/user/cqu/perl5/perlbrew/perls/perl-5.22.1/lib/site_perl/5.22.1 /home/user/cqu/perl5/perlbrew/perls/perl-5.22.1/lib/5.22.1/x86_64-linux /home/user/cqu/perl5/perlbrew/perls/perl-5.22.1/lib/5.22.1 ., /usr/local/lib /home/fds/build/lib /usr/lib /lib/../lib64 /usr/lib/../lib64 /lib /lib64 /usr/lib64 /usr/local/lib64 /tmp/par-637175/cache-d35ba61c53c4c947465e383ad3f64554559354a7 /home/fds/build/lib64 /home/fds/build/FDSonline-1.0-201612120013/lib64 /export/fds/Linux_RHEL6_x86_64/lang/perl/5.12/lib/5.12.5/x86_64-linux-thread-multi/CORE /home/user/cqu/oracl_inst_client/instantclient_12_1) dl_findfile() dl_findfile found: DynaLoader::bootstrap for Digest::SHA (auto/Digest/SHA/SHA.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.22.1/lib/5.22.1/x86_64-linux/auto/Digest/SHA/SHA.so for Digest::SHA DynaLoader.pm loaded (CODE(0x16650b0) /home/user/cqu/perl5/perlbrew/perls/perl-5.22.1/lib/site_perl/5.22.1/x86_64-linux /home/user/cqu/perl5/perlbrew/perls/perl-5.22.1/lib/site_perl/5.22.1 /home/user/cqu/perl5/perlbrew/perls/perl-5.22.1/lib/5.22.1/x86_64-linux /home/user/cqu/perl5/perlbrew/perls/perl-5.22.1/lib/5.22.1 ., /usr/local/lib /home/fds/build/lib /usr/lib /lib/../lib64 /usr/lib/../lib64 /lib /lib64 /usr/lib64 /usr/local/lib64 /tmp/par-637175/cache-4211c63b3af2a77816815d06cd85ce2fe5320f65 /home/fds/build/lib64 /home/fds/build/FDSonline-1.0-201612120013/lib64 /export/fds/Linux_RHEL6_x86_64/lang/perl/5.12/lib/5.12.5/x86_64-linux-thread-multi/CORE /home/user/cqu/oracl_inst_client/instantclient_12_1) dl_findfile() dl_findfile found: DynaLoader::bootstrap for IO (auto/IO/IO.so) found /tmp/par-637175/cache-4211c63b3af2a77816815d06cd85ce2fe5320f65/cb956fef.so for IO DynaLoader::bootstrap for Fcntl (auto/Fcntl/Fcntl.so) found /tmp/par-637175/cache-4211c63b3af2a77816815d06cd85ce2fe5320f65/f427f08b.so for Fcntl DynaLoader::bootstrap for Cwd (auto/Cwd/Cwd.so) found /tmp/par-637175/cache-4211c63b3af2a77816815d06cd85ce2fe5320f65/79d49540.so for Cwd DynaLoader::bootstrap for Compress::Raw::Zlib (auto/Compress/Raw/Zlib/Zlib.so) found /tmp/par-637175/cache-4211c63b3af2a77816815d06cd85ce2fe5320f65/82965e7f.so for Compress::Raw::Zlib DynaLoader::bootstrap for List::Util (auto/List/Util/Util.so) found /tmp/par-637175/cache-4211c63b3af2a77816815d06cd85ce2fe5320f65/c75cefe0.so for List::Util DynaLoader::bootstrap for Encode (auto/Encode/Encode.so) found /tmp/par-637175/cache-4211c63b3af2a77816815d06cd85ce2fe5320f65/39e584e7.so for Encode DynaLoader::bootstrap for Data::Dumper (auto/Data/Dumper/Dumper.so) found /tmp/par-637175/cache-4211c63b3af2a77816815d06cd85ce2fe5320f65/ec5f6c39.so for Data::Dumper DynaLoader::bootstrap for File::Glob (auto/File/Glob/Glob.so) found /tmp/par-637175/cache-4211c63b3af2a77816815d06cd85ce2fe5320f65/6f06096d.so for File::Glob DynaLoader::bootstrap for PerlIO::scalar (auto/PerlIO/scalar/scalar.so) found /tmp/par-637175/cache-4211c63b3af2a77816815d06cd85ce2fe5320f65/b03ad7bd.so for PerlIO::scalar DynaLoader::bootstrap for Tie::Hash::NamedCapture (auto/Tie/Hash/NamedCapture/NamedCapture.so) found /tmp/par-637175/cache-4211c63b3af2a77816815d06cd85ce2fe5320f65/70c28b04.so for Tie::Hash::NamedCapture DynaLoader::bootstrap for attributes (auto/attributes/attributes.so) found /tmp/par-637175/cache-4211c63b3af2a77816815d06cd85ce2fe5320f65/fb337197.so for attributes DynaLoader::bootstrap for Digest::SHA (auto/Digest/SHA/SHA.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.22.1/lib/5.22.1/x86_64-linux/auto/Digest/SHA/SHA.so for Digest::SHA running log: hello, world 5.24.0: Pp log: DynaLoader.pm loaded (/home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/x86_64-linux-thread-multi /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0 /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0 . /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/x86_64-linux-thread-multi /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0 /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0 ., /usr/local/lib /home/fds/build/lib /usr/lib /lib/../lib64 /usr/lib/../lib64 /lib /lib64 /usr/lib64 /usr/local/lib64 /tmp/par-637175/cache-1f96b90f48b2549e260a6c2d7e28e28ecaec5750 /home/fds/build/lib64 /home/fds/build/FDSonline-1.0-201612120013/lib64 /export/fds/Linux_RHEL6_x86_64/lang/perl/5.12/lib/5.12.5/x86_64-linux-thread-multi/CORE /home/user/cqu/oracl_inst_client/instantclient_12_1) dl_findfile() dl_findfile found: DynaLoader::bootstrap for Digest::SHA (auto/Digest/SHA/SHA.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/Digest/SHA/SHA.so for Digest::SHA DynaLoader.pm loaded (CODE(0x28b6c90) /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/x86_64-linux-thread-multi /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0 /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0 ., /usr/local/lib /home/fds/build/lib /usr/lib /lib/../lib64 /usr/lib/../lib64 /lib /lib64 /usr/lib64 /usr/local/lib64 /tmp/par-637175/cache-3a8e16187c7a034a209ade355b4de22b0efc79d8 /home/fds/build/lib64 /home/fds/build/FDSonline-1.0-201612120013/lib64 /export/fds/Linux_RHEL6_x86_64/lang/perl/5.12/lib/5.12.5/x86_64-linux-thread-multi/CORE /home/user/cqu/oracl_inst_client/instantclient_12_1) DynaLoader::bootstrap for Cwd (auto/Cwd/Cwd.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/Cwd/Cwd.so for Cwd DynaLoader::bootstrap for IO (auto/IO/IO.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/IO/IO.so for IO DynaLoader::bootstrap for Fcntl (auto/Fcntl/Fcntl.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/Fcntl/Fcntl.so for Fcntl DynaLoader::bootstrap for Compress::Raw::Zlib (auto/Compress/Raw/Zlib/Zlib.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/Compress/Raw/Zlib/Zlib.so for Compress::Raw::Zlib DynaLoader::bootstrap for List::Util (auto/List/Util/Util.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/List/Util/Util.so for List::Util DynaLoader::bootstrap for Encode (auto/Encode/Encode.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/Encode/Encode.so for Encode DynaLoader::bootstrap for Data::Dumper (auto/Data/Dumper/Dumper.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/Data/Dumper/Dumper.so for Data::Dumper dl_findfile() dl_findfile found: DynaLoader::bootstrap for File::Glob (auto/File/Glob/Glob.so) found /tmp/par-637175/cache-3a8e16187c7a034a209ade355b4de22b0efc79d8/99a7eb96.so for File::Glob DynaLoader::bootstrap for PerlIO::scalar (auto/PerlIO/scalar/scalar.so) found /tmp/par-637175/cache-3a8e16187c7a034a209ade355b4de22b0efc79d8/2704eb0c.so for PerlIO::scalar DynaLoader::bootstrap for Tie::Hash::NamedCapture (auto/Tie/Hash/NamedCapture/NamedCapture.so) found /tmp/par-637175/cache-3a8e16187c7a034a209ade355b4de22b0efc79d8/90acfd09.so for Tie::Hash::NamedCapture DynaLoader::bootstrap for attributes (auto/attributes/attributes.so) found /tmp/par-637175/cache-3a8e16187c7a034a209ade355b4de22b0efc79d8/a1227989.so for attributes DynaLoader::bootstrap for Digest::SHA (auto/Digest/SHA/SHA.so) found /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/auto/Digest/SHA/SHA.so for Digest::SHA running log: Can't locate loadable object for module IO in @INC (@INC contains: CODE(0x13ab388) /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/x86_64-linux-thread-multi /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0 /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0 .) at /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/IO/Handle.pm line 269. Compilation failed in require at /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/IO/Handle.pm line 269. BEGIN failed--compilation aborted at /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/IO/Handle.pm line 269. Compilation failed in require at /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/IO/Seekable.pm line 101. BEGIN failed--compilation aborted at /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/IO/Seekable.pm line 101. Compilation failed in require at /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/IO/File.pm line 133. BEGIN failed--compilation aborted at /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/IO/File.pm line 133. Compilation failed in require at /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/Archive/Zip.pm line 7. BEGIN failed--compilation aborted at /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/Archive/Zip.pm line 7. Compilation failed in require at /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/PAR/Heavy.pm line 19. BEGIN failed--compilation aborted at /home/user/cqu/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/PAR/Heavy.pm line 19. Compilation failed in require at -e line 158. Show quoted text
-----Original Message----- From: Roderich Schupp via RT [mailto:bug-PAR-Packer@rt.cpan.org] Sent: Tuesday, December 13, 2016 2:52 PM To: par@perl.org Subject: [rt.cpan.org #119224] Issue about Can't locate loadable object for module Tue Dec 13 09:51:21 2016: Request 119224 was acted upon. Transaction: Correspondence added by RSCHUPP Queue: PAR-Packer Subject: Issue about Can't locate loadable object for module Broken in: (no value) Severity: (no value) Owner: Nobody Requestors: cqu@factset.com Status: new Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=119224 > Please provide the versions of the following modules that you are using: Module::ScanDeps PAR PAR::Packer Did you build PAR::Packer yourself? Esp. did you run "make test" and it passed? Does this problem show for a simple "hello world" program, e.g. $ pp -o hello.exe -e 'print "hello, world\n"' $ ./hello.exe If yes, please include the complete output produced by running hello.exe. Otherwise, provide a failing example script. Cheers, Roderich
Am 2016-12-13 10:10:49, cqu@factset.com schrieb: Show quoted text
> Verisons: > > 5.22.1: > PAR: 1.010 > PAR::Packer: 1.033 > Module::ScanDeps: 1.21
This is the one that works? Show quoted text
> 5.24.0: > PAR: 1.013 > PAR::Packer: 1.033 (I used cpanm to install this version, 1.038 also > fails so I guess this one is not related)
(1) There is no PAR::Packer 1.038 (2) It's highly unlikely that "hello world" fails while cpanm did install PAR::Packer successfully (unless you did "cpan -f ...") Show quoted text
> Hellow world test: > > 5.22.1: > > Pp log:
What does "Pp log" do? Sorry, I can't wade thru its output. Please unset all PERL* environment variables (esp. PERL5LIB), then run just the two commands in "hello world" example from my previous message. Cheers, Roderich
Subject: RE: [rt.cpan.org #119224] Issue about Can't locate loadable object for module
Date: Tue, 13 Dec 2016 16:05:15 +0000
To: "bug-PAR-Packer [...] rt.cpan.org" <bug-PAR-Packer [...] rt.cpan.org>, "par [...] perl.org" <par [...] perl.org>
From: Chenchen Qu <cqu [...] factset.com>
Hi Roderich: Sorry I remembered the version wrong, the version for PAR::Packer that originally installed on perl-5.24.0 was 1.035 which causes the failure, so I reinstalled that with 1.033 and the failure still exist. The pp log is just me setting the DynaLoader.pm to print out debug messages, trying to figure out why it couldn't find the so files from the /tmp directory. I tried with completely new environment, I spin up a new box with perl-5.24.0 installed: 5.24.0: PAR: 1.013 PAR::Packer: 1.035 Module::ScanDeps: 1.23 And the result I got is: Can't locate loadable object for module IO in @INC (@INC contains: CODE(0x258ae98) /root/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/x86_64-linux-thread-multi /root/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0 /root/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi /root/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0 .) at /root/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/IO/Handle.pm line 269. Compilation failed in require at /root/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/IO/Handle.pm line 269. BEGIN failed--compilation aborted at /root/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/IO/Handle.pm line 269. Compilation failed in require at /root/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/IO/Seekable.pm line 101. BEGIN failed--compilation aborted at /root/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/IO/Seekable.pm line 101. Compilation failed in require at /root/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/IO/File.pm line 133. BEGIN failed--compilation aborted at /root/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread-multi/IO/File.pm line 133. Compilation failed in require at /root/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/Archive/Zip.pm line 7. BEGIN failed--compilation aborted at /root/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/Archive/Zip.pm line 7. Compilation failed in require at /root/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/PAR/Heavy.pm line 19. BEGIN failed--compilation aborted at /root/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/PAR/Heavy.pm line 19. Compilation failed in require at -e line 158. Can I ask how does the mangled file in the /tmp directory get copied in the first place? Thanks Chenchen Show quoted text
-----Original Message----- From: Roderich Schupp via RT [mailto:bug-PAR-Packer@rt.cpan.org] Sent: Tuesday, December 13, 2016 3:41 PM To: par@perl.org Subject: [rt.cpan.org #119224] Issue about Can't locate loadable object for module Tue Dec 13 10:40:24 2016: Request 119224 was acted upon. Transaction: Correspondence added by RSCHUPP Queue: PAR-Packer Subject: Issue about Can't locate loadable object for module Broken in: (no value) Severity: (no value) Owner: RSCHUPP Requestors: cqu@factset.com Status: open Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=119224 > Am 2016-12-13 10:10:49, cqu@factset.com schrieb:
> Verisons: > > 5.22.1: > PAR: 1.010 > PAR::Packer: 1.033 > Module::ScanDeps: 1.21
This is the one that works?
> 5.24.0: > PAR: 1.013 > PAR::Packer: 1.033 (I used cpanm to install this version, 1.038 also > fails so I guess this one is not related)
(1) There is no PAR::Packer 1.038 (2) It's highly unlikely that "hello world" fails while cpanm did install PAR::Packer successfully (unless you did "cpan -f ...")
> Hellow world test: > > 5.22.1: > > Pp log:
What does "Pp log" do? Sorry, I can't wade thru its output. Please unset all PERL* environment variables (esp. PERL5LIB), then run just the two commands in "hello world" example from my previous message. Cheers, Roderich
Am 2016-12-13 11:05:48, cqu@factset.com schrieb: Show quoted text
> I tried with completely new environment, I spin up a new box with > perl-5.24.0 installed: > > 5.24.0: > PAR: 1.013 > PAR::Packer: 1.035 > Module::ScanDeps: 1.23 > > > And the result I got is: > > Can't locate loadable object for module IO in @INC (@INC contains: > CODE(0x258ae98) /root/perl5/perlbrew/perls/perl- > 5.24.0/lib/site_perl/5.24.0/x86_64-linux-thread-multi > /root/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0 > /root/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread- > multi /root/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0 .) at > /root/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux-thread- > multi/IO/Handle.pm line 269.
That line does not make any sense. Are you sure that calling pp in this environment invokes /root/perl5/perlbrew/perls/perl-5.24.0/bin/pp? Plase provide the unabridged output of the following commands: perl -V cpanm -v --reinstall PAR::Packer Cheers, Roderich
Subject: RE: [rt.cpan.org #119224] Issue about Can't locate loadable object for module
Date: Tue, 13 Dec 2016 16:38:05 +0000
To: "bug-PAR-Packer [...] rt.cpan.org" <bug-PAR-Packer [...] rt.cpan.org>
From: Chenchen Qu <cqu [...] factset.com>

Message body is not shown because it is too large.

Subject: RE: [rt.cpan.org #119224] Issue about Can't locate loadable object for module
Date: Tue, 13 Dec 2016 19:37:14 +0000
To: "bug-PAR-Packer [...] rt.cpan.org" <bug-PAR-Packer [...] rt.cpan.org>
From: Chenchen Qu <cqu [...] factset.com>

Message body is not shown because it is too large.

Subject: RE: [rt.cpan.org #119224] Issue about Can't locate loadable object for module
Date: Tue, 13 Dec 2016 16:05:49 -0500
To: bug-par-packer [...] rt.cpan.org
From: Andrey <ahippo [...] yandex.com>
I had the same problem with perl-5.22.2, PAR-1.013, PAR::Packer-1.035, and Module::ScanDeps-1.23. I managed to workaround it by downgrading PAR to 1.011. (1.012 is also broken) Now, executables produced with pp seem to work fine. Roderich, please, let me know if you want me to test a fix or something. Thank you, -- Andrey.
RT-Send-CC: ahippo [...] yandex.com
On 2016-12-13 16:06:01, ahippo@yandex.com wrote: Show quoted text
> I had the same problem with perl-5.22.2, PAR-1.013, PAR::Packer-1.035, > and Module::ScanDeps-1.23. > > I managed to workaround it by downgrading PAR to 1.011. > (1.012 is also broken)
1.012 is definitely broken. Show quoted text
> Now, executables produced with pp seem to work fine.
Yeah, I'm beginning to suspect that the problem is in PAR, not in PAR::Packer. Though I don't know why I can't reproduce it. Can you try the attached patch for PAR (on top of PAR 1.013)? Cheers, Roderich
Subject: Heavy.patch
diff --git a/lib/PAR/Heavy.pm b/lib/PAR/Heavy.pm index feadae6..eccc42f 100644 --- a/lib/PAR/Heavy.pm +++ b/lib/PAR/Heavy.pm @@ -16,7 +16,6 @@ No user-serviceable parts inside. =cut use File::Spec; -use Archive::Zip qw( :ERROR_CODES ); ######################################################################## # Dynamic inclusion of XS modules @@ -136,7 +135,7 @@ sub _dl_extract { # extract it under a temporary name that isn't likely to be used # by concurrent processes doing the same my $tempname = "$filename.$$"; - $member->extractToFileNamed($tempname) == AZ_OK + $member->extractToFileNamed($tempname) == Archive::Zip::AZ_OK or die "Can't extract archive member ".$member->fileName." to $tempname: $!"; # now that we have a "good" copy in $tempname, rename it to $filename;
Subject: Re: [rt.cpan.org #119224] Issue about Can't locate loadable object for module
Date: Tue, 13 Dec 2016 18:37:30 -0500
To: "bug-PAR-Packer [...] rt.cpan.org" <bug-par-packer [...] rt.cpan.org>
From: Andrey <ahippo [...] yandex.com>
Show quoted text
> Yeah, I'm beginning to suspect that the problem is in PAR, not in PAR::Packer. > Though I don't know why I can't reproduce it.
Hm, that's strange, because even "hello.exe" doesn't work. I've built a fresh perl-5.22.2 using perlbrew on CentOS 5.9 and then installed PAR::Packer using cpan. I've also installed PAR::Packer from cpan on an up-to-date Gentoo machine running perl-5.22.2 and PAR 1.013. Both hello.exe's die with "Can't locate loadable object for module IO". Show quoted text
> Can you try the attached patch for PAR (on top of PAR 1.013)?
Sure. It now works! Both on CentOS 5 and Gentoo. A more sophisticated script now works just fine too. Thank you so much for the patch! -- Andrey.
Subject: RE: [rt.cpan.org #119224] Issue about Can't locate loadable object for module
Date: Wed, 14 Dec 2016 12:11:59 +0000
To: "bug-PAR-Packer [...] rt.cpan.org" <bug-PAR-Packer [...] rt.cpan.org>
From: Chenchen Qu <cqu [...] factset.com>
Hi Roderich: After applying the patch my executable works fine now, thank you for giving out the fix Chenchen Show quoted text
-----Original Message----- From: Roderich Schupp via RT [mailto:bug-PAR-Packer@rt.cpan.org] Sent: Tuesday, December 13, 2016 10:43 PM To: Chenchen Qu <cqu@factset.com> Subject: [rt.cpan.org #119224] Issue about Can't locate loadable object for module <URL: https://rt.cpan.org/Ticket/Display.html?id=119224 > On 2016-12-13 16:06:01, ahippo@yandex.com wrote:
> I had the same problem with perl-5.22.2, PAR-1.013, PAR::Packer-1.035, > and Module::ScanDeps-1.23. > > I managed to workaround it by downgrading PAR to 1.011. > (1.012 is also broken)
1.012 is definitely broken.
> Now, executables produced with pp seem to work fine.
Yeah, I'm beginning to suspect that the problem is in PAR, not in PAR::Packer. Though I don't know why I can't reproduce it. Can you try the attached patch for PAR (on top of PAR 1.013)? Cheers, Roderich
RT-Send-CC: ahippo [...] yandex.com
Thank you both for testing the fix! I'm going to release a fixed PAR over the weekend. In hindsight it was a silly idea to "use" anything in PAR/Heavy.pm (esp. anything that could directly or recursively load an XS module). After all, PAR/Heavy.pm contains the machinery that allows XSLoader or DynaLoader to load XS modules from a packed executable or .par archive. But I'm still puzzled about the fact that PAR::Packer's self test passes (which packs and runs a variety of simple scripts), but the "hello world" example bombs out for you (but not on my test systems). So that we're all on the same page here: Did you *run* the "hello world" executable on the *same* machine where you generated it (with pp)? Cheers, Roderich
Subject: RE: [rt.cpan.org #119224] Issue about Can't locate loadable object for module
Date: Wed, 14 Dec 2016 16:18:06 +0000
To: "bug-PAR-Packer [...] rt.cpan.org" <bug-PAR-Packer [...] rt.cpan.org>, "par [...] perl.org" <par [...] perl.org>
From: Chenchen Qu <cqu [...] factset.com>
No, I ran it on new machine, I guess if your test script is able to locate the share library somewhere in your system it could still pass your test. Thanks for the quick fix! Chenchen Show quoted text
-----Original Message----- From: Roderich Schupp via RT [mailto:bug-PAR-Packer@rt.cpan.org] Sent: Wednesday, December 14, 2016 4:14 PM To: par@perl.org Subject: [rt.cpan.org #119224] Issue about Can't locate loadable object for module Wed Dec 14 11:13:38 2016: Request 119224 was acted upon. Transaction: Correspondence added by RSCHUPP Queue: PAR-Packer Subject: Issue about Can't locate loadable object for module Broken in: (no value) Severity: (no value) Owner: RSCHUPP Requestors: cqu@factset.com Status: open Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=119224 > Thank you both for testing the fix! I'm going to release a fixed PAR over the weekend. In hindsight it was a silly idea to "use" anything in PAR/Heavy.pm (esp. anything that could directly or recursively load an XS module). After all, PAR/Heavy.pm contains the machinery that allows XSLoader or DynaLoader to load XS modules from a packed executable or .par archive. But I'm still puzzled about the fact that PAR::Packer's self test passes (which packs and runs a variety of simple scripts), but the "hello world" example bombs out for you (but not on my test systems). So that we're all on the same page here: Did you *run* the "hello world" executable on the *same* machine where you generated it (with pp)? Cheers, Roderich
Subject: Re: [rt.cpan.org #119224] Issue about Can't locate loadable object for module
Date: Wed, 14 Dec 2016 12:43:35 -0500
To: "bug-PAR-Packer [...] rt.cpan.org" <bug-par-packer [...] rt.cpan.org>, bug-par [...] rt.cpan.org
From: Andrey <ahippo [...] yandex.com>
Show quoted text
> Thank you both for testing the fix!
No problem. The fix came right in time! I was really desperate and looking for other packagers for perl. Show quoted text
> I'm going to release a fixed PAR over the weekend.
Great news, thank you so much! Show quoted text
> But I'm still puzzled about the fact that PAR::Packer's self test passes > (which packs and runs a variety of simple scripts), but the "hello world" > example bombs out for you (but not on my test systems). > So that we're all on the same page here: > Did you *run* the "hello world" executable on the *same* machine > where you generated it (with pp)?
No, I ran it on a different clean machine. I guess, it worked fine on the build machine because it loaded everything from system-wide perl. The simplest way to get a clean environment for me is to setup a minimalistic chroot: mkdir -p chroot/{dev,tmp,lib64} mount --rbind /dev chroot/dev mount --bind /lib64 chroot/lib64 mount --bind -o ro,remount /lib64 chroot/lib64 # yes, a separate remount is needed with util-linux < 2.27 cp hello.exe chroot/ chroot ./chroot /hello.exe It has a downside of running hello.exe as root though. Not sure, how to plug this in Packer's self-tests though. An LD_PRELOAD library that hides system-wide perl might work. -- Andrey.
Subject: Re: [rt.cpan.org #119224] Issue about Can't locate loadable object for module
Date: Wed, 14 Dec 2016 12:43:35 -0500
To: "bug-PAR-Packer [...] rt.cpan.org" <bug-par-packer [...] rt.cpan.org>, bug-par [...] rt.cpan.org
From: Andrey <ahippo [...] yandex.com>
Show quoted text
> Thank you both for testing the fix!
No problem. The fix came right in time! I was really desperate and looking for other packagers for perl. Show quoted text
> I'm going to release a fixed PAR over the weekend.
Great news, thank you so much! Show quoted text
> But I'm still puzzled about the fact that PAR::Packer's self test passes > (which packs and runs a variety of simple scripts), but the "hello world" > example bombs out for you (but not on my test systems). > So that we're all on the same page here: > Did you *run* the "hello world" executable on the *same* machine > where you generated it (with pp)?
No, I ran it on a different clean machine. I guess, it worked fine on the build machine because it loaded everything from system-wide perl. The simplest way to get a clean environment for me is to setup a minimalistic chroot: mkdir -p chroot/{dev,tmp,lib64} mount --rbind /dev chroot/dev mount --bind /lib64 chroot/lib64 mount --bind -o ro,remount /lib64 chroot/lib64 # yes, a separate remount is needed with util-linux < 2.27 cp hello.exe chroot/ chroot ./chroot /hello.exe It has a downside of running hello.exe as root though. Not sure, how to plug this in Packer's self-tests though. An LD_PRELOAD library that hides system-wide perl might work. -- Andrey.
RT-Send-CC: ahippo [...] yandex.com
Again, thanks to both of you. Puzzle solved! A bit of explanation: When a packed executable runs, its @INC will only contain paths inside of the cache area (usually /tmp/par-XXX/SOME-SHA1) (plus some CODE refs). The self test will check for this. However, this is only correct once the bootstrap phase is finished. During bootstrap we might still see remnants of the perl built-in @INC, but if everythings works as planned we do not call any operation that causes a search in @INC. Except for stupid mistakes which go undetected if we're running the executable in the same environment where we packed it :( Cheers, Roderich
Fixed in PAR 1.014, just released to CPAN Cheers, Roderich
Subject: Re: [rt.cpan.org #119224] Issue about Can't locate loadable object for module
Date: Mon, 19 Dec 2016 18:05:35 -0500
To: "bug-PAR [...] rt.cpan.org" <bug-par [...] rt.cpan.org>
From: Andrey <ahippo [...] yandex.com>
Show quoted text
> Fixed in PAR 1.014, just released to CPAN
Awesome, thank you so much for releasing so quickly! I've just updated to PAR-1.014 and it works great! Thank you again! -- Andrey.