in reply to Re^4: Pelr packer pp with -C fails else ok
in thread Pelr packer pp with -C fails else ok

It could be a race condition where the PAR temp dir is deleted before your code has finished its cleanup or some other step in global destruction (which has no guarantee of order if I remember correctly), but it is difficult to have any certainty without seeing your code. You could put some feedback statements into an end block in your code to get a better sense of when the error is triggered.

Maybe upgrading to the latest PAR::Packer will also help, but I don't see anything obvious in the change logs.

In any case, I packed using the command below, and it generates and removes the temp dir as expected.

pp -C -M Net::OpenSSH::ShellQuoter::POSIX -M arybase -o mytest.exe -e +"print join q{ }, @INC"

Replies are listed 'Best First'.
Re^6: Pelr packer pp with -C fails else ok
by dkhosla1 (Sexton) on Oct 06, 2018 at 13:50 UTC
    To clarify, compilation with -C works fine on 30+ systems so far. It is failing like this only on 1 specific system. So I am trying to figure out why just on that specific system.

      It sounds like it could be an interaction with external process that is on that system but not the others. I've seen issues with file cleaners deleting some of the contents of the PAR temp dir during execution, and antivirus programs can quarantine files, so something like that might be the culprit.

      Sprinkling feedback throughout the program (e.g. printing @INC at startup and completion) to narrow down the point of failure would also be worthwhile.

        Possible. I created a simple script to dump @INC and compiled it both with a '-C' and without.
        use strict; use warnings; use File::Temp qw(tempfile); use File::Basename; print join q{ }, @INC; print "\n";
        Builds:
        pp -C -o ichk-C ichk.pl and pp -o ichk-noC ichk.pl
        Output (output filename is listed in ** xxx ** below:
        ** ichk-C ** Invalid argument at -e line 119. Can't locate File/Temp.pm in @INC (@INC contains: /home/shared/perl5/R +EL5/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3/x86_64-linux /hom +e/shared/perl5/REL5/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3 / +home/shared/perl5/REL5/perlbrew/perls/perl-5.16.3/lib/5.16.3/x86_64-l +inux /home/shared/perl5/REL5/perlbrew/perls/perl-5.16.3/lib/5.16.3 .) + at -e line 6. END failed--call queue aborted at -e line 616. ** ichk-noC ** par-646563687063/cache-e9945fbc61b7cb093917c5ca027e5bb0198d1d0d/inc/li +b par-646563687063/cache-e9945fbc61b7cb093917c5ca027e5bb0198d1d0d/inc + CODE(0x11d5950) CODE(0x11d5a58)

        I had just thrown in the "File::Temp" even though not used. Tomorrow I'll try without it in the code just in case something unique about this.