Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Can you change the location PAR packer pp unpacks to at runtime?

by BioNrd (Monk)
on Sep 08, 2008 at 19:25 UTC ( #709846=perlquestion: print w/replies, xml ) Need Help??

BioNrd has asked for the wisdom of the Perl Monks concerning the following question:

Most esteemed monks:
I am trying to deploy an .exe packaged from a script with the PAR packer pp onto a condor grid service.

I have extensively tested the .exe to ensure that it is working. To that end I have discovered that it does in fact: upload, run, product output, and return said output on a number of machines on the grid.

However, there are a number of machines, which fail to run said script and eat through scheduled jobs like it was their job. The machines that fail always produce the following error message:

condor_exec.exe: creation of C:\WINDOWS\TEMP\par-SYSTEM\cache-7fe3fbb195909918775c54a165cd0d622d2080ad/perl510.dll failed - aborting with 13.

Now, I do not think this is related to the condor system per se, in that it looks like the error is related to the PAR exe failing to unpack the request items to said machine.

So my questions to the monks are:
-Can you alter the directory that the packaged exe unpacks to?
-Do you think this is a permissions issue? (I think that the error is a PAR error not a condor error. However, I do not know what "aborting with 13." means, and google fails to help me, but I suspect it is either A: Permissions error, B: Out of space error, C: None of the above, and I am asking this in the wrong place).

I realize this is a bit out of place for the monks, but I don't know where else to turn.

---- Even a blind squirrel finds a nut sometimes.
  • Comment on Can you change the location PAR packer pp unpacks to at runtime?

Replies are listed 'Best First'.
Re: Can you change the location PAR packer pp unpacks to at runtime?
by jettero (Monsignor) on Sep 08, 2008 at 19:32 UTC

    I'm not sure if it's the most well documented feature ever, but you can change the unpack location by setting the environment variable: $ENV{PAR_TEMP}.


      Users should set PAR_GLOBAL_TEMP instead. PAR_TEMP is calculated from a variety of other variables. See the NOTES section in the pod for for a complete description of how the calculation proceeds. PAR_TEMP, once calculated, is used as the location where PAR stores its extracted, temporary file cache.
      So far the temp dir has been based on the current value of $ENV{TEMP}. + What if we want the temp dir to be some specific place for our application, re +gardless of system values ? C:\Par>set PAR_GLOBAL_TEMP=c:\Par\temp C:\Par>demo.exe a b c My basename is demo $0 = C:\Par\demo.exe My args are: a b c My @INC is: c:\Par\temp/inc/lib c:\Par\temp/inc CODE(0xdb2718) + . I am a PAR package I am a binary file I am running as '$0 @ARGV' C:\Par\demo.exe a b c My temp dir is c:\Par\temp and it will NOT be deleted after the script finishes A copy of this script was extracted as C:\Par\temp\ PAR environment: PAR_0=C:\Par\temp\ PAR_ARGC=4 PAR_ARGV_0=demo.exe PAR_ARGV_1=a PAR_ARGV_2=b PAR_ARGV_3=c PAR_GLOBAL_CLEAN=1 PAR_GLOBAL_TEMP=c:\Par\temp PAR_INITIALIZED=2 PAR_PROGNAME=C:\Par\demo.exe PAR_SPAWNED=1 PAR_TEMP=c:\Par\temp C:\Par> PAR_TEMP is set to PAR_GLOBAL_TEMP, but PAR_GLOBAL_CLEAN is overidden. + If you chose a fixed temp dir, you also clean up after yourself. There is cur +rently no way to define a fixed temp dir inside the PAR package, and since te +mp dir creation is done before the script runs, PAR_GLOBAL_TEMP must be set b +efore running the PAR package.
      Thanks for the reply. This looks like what I might want to go ahead and try. However, when you say set the envi var am I changing the source? In this case and To be honest, looking at that code and trying to make sense of it does go a little over my head.

      If I do need to go in and change the guts, I will post what I need specific help with once I fumble around a bit more.

      ---- Even a blind squirrel finds a nut sometimes.

        I only really speak unix, but from the shell you can PAR_TEMP=/my/location executable.elf2, I'm sure there's a way to set an environment variable in win32...

        It's some thing like set PAR_TEMP=blahblahblah I imagine.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://709846]
Approved by Corion
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (5)
As of 2020-09-18 22:56 GMT
Find Nodes?
    Voting Booth?
    If at first I donít succeed, I Ö

    Results (113 votes). Check out past polls.