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

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.
  • Comment on Re^6: Pelr packer pp with -C fails else ok

Replies are listed 'Best First'.
Re^7: Pelr packer pp with -C fails else ok
by swl (Prior) on Oct 06, 2018 at 23:35 UTC

    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.

        Trying without File::Temp is worthwhile.

        Maybe also add a few extra print statements to see where the point of failure is:

        use strict; use warnings; BEGIN { print "INC BEGIN: "; print join q{ }, @INC; print "\n"; } use File::Temp qw(tempfile); use File::Basename; print join q{ }, @INC; print "\n"; END { print "INC END: "; print join q{ }, @INC; print "\n"; }
        UPDATE: And setting set PAR_GLOBAL_DEBUG=1 before calling the packed executable, as suggested in 1223698, will give plenty of additional feedback.