<div dir="ltr"><pre style="color:rgb(0,0,0)"><pre style>After internally considering several approaches about how to handle -V overwriting special environment variables (like PBS_O_* ones), we decided that the original issue is not a bug. Changing the qsub code to protect special variables would change the default behavior and this was not desirable.</pre>
<pre style>However, there is a workaround that may be useful in some settings and it can be used to preserve some important variables. The key is to note that -v has a higher precedence than -V so variables specified via -v will overwrite ones pulled in via -V. Certain PBS_* variables may need to be set in other creative ways (note PBS_O_HOST below.) Using Matt&#39;s original example with the workaround:</pre>
<pre style>$ cd bin</pre><pre style>$ pwd</pre><pre style>/home/msbritt/bin</pre><pre style>$ qsub -I</pre><pre style>$ echo $PBS_O_WORKDIR</pre><pre style>/home/msbritt/bin</pre><pre style>$ echo $PBS_O_HOST</pre><pre style>
<a href="http://nyx.engin.umich.edu">nyx.engin.umich.edu</a></pre><pre style>$ pwd</pre><pre style>/home/msbritt</pre><pre style>$ qsub -I -V -v PBS_O_WORKDIR=$PWD</pre><pre style>$ echo $PBS_O_WORKDIR</pre><pre style>/home/msbritt</pre>
<pre style>$ export PBS_O_HOST=`/bin/hostname`</pre><pre style>$ echo $PBS_O_HOST</pre><pre style>nyx5515</pre><pre style><br></pre><pre style> -Chad</pre><pre style><br></pre><pre>From: <a href="http://www.supercluster.org/mailman/listinfo/torqueusers">torqueusers-bounces at supercluster.org</a> [mailto:<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">torqueusers-bounces at supercluster.org</a>] On Behalf Of Ken Nielson
Sent: Wednesday, January 23, 2013 3:11 PM
To: Torque Users Mailing List
Subject: Re: [torqueusers] PBS environmental variables and -V

Matt,

I guess you would call it a bug. I think it is simply years of maintenance without knowledge of the original intent. Rick made a ticket for this and we will see what it currently does and try to figure out what it should do and then let everyone know.

Ken
On Wed, Jan 23, 2013 at 3:30 PM, Matthew Britt &lt;<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at umich.edu</a>&lt;mailto:<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at umich.edu</a>&gt;&gt; wrote:
As a counter argument, the value of PBS_NODEFILE isn&#39;t getting set to the same value for the second job.   Like PBS_NODEFILE, I would expect the PBS_O variables get set correctly for the submitted job and not the environment passed into it.  It isn&#39;t consistent w/ PBS_O variables either, as PBS_O_QUEUE is overwritten w/ the correct value (I exported a different value into PBS_O_QUEUE to check).

fwiw, we&#39;re using Environmental Modules, so we set several variables for software packages, like license servers, process launchers (like hydra), etc.  The users might not be aware that these variables are necessary, so we have the users load appropriate module(s) and submit with -V.

If the PBS_O_ variables are treated differently than PBS_ variables, that&#39;s fine; I was curious if it was by design or was a bug.

 - Matt

--------------------------------------------
Matthew Britt
CAEN HPC Group - College of Engineering
<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at umich.edu</a>&lt;mailto:<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at umich.edu</a>&gt;

On Jan 23, 2013, at 2:54 PM, &quot;Andrus, Brian Contractor&quot; &lt;<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">bdandrus at nps.edu</a>&lt;mailto:<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">bdandrus at nps.edu</a>&gt;&gt; wrote:

&gt;<i> Seems to me that would be by design and you need to be aware of it.
</i>&gt;<i> -V basically just takes the output of &#39;env&#39; and sets anything that is set.
</i>&gt;<i> Since you already have PBS_* variables, I would expect them to be set already.
</i>&gt;<i>
</i>&gt;<i> This could be handled by pbs_mom if it were to first sent the -V stuff and then set the PBS_* stuff.
</i>&gt;<i> You can do this by iterating through and &#39;unset&#39; all the PBS_* variables before doing the qsub.
</i>&gt;<i>
</i>&gt;<i> I tend to rend this moot by highly discouraging the use of -V
</i>&gt;<i> It&#39;s use makes it difficult to troubleshoot when folks use things like &quot;./a.out&quot; to run their programs.
</i>&gt;<i>
</i>&gt;<i>
</i>&gt;<i> Brian Andrus
</i>&gt;<i> ITACS/Research Computing
</i>&gt;<i> Naval Postgraduate School
</i>&gt;<i> Monterey, California
</i>&gt;<i> voice: 831-656-6238&lt;tel:831-656-6238&gt;
</i>&gt;<i>
</i>&gt;<i>
</i>&gt;<i>
</i>&gt;&gt;<i> -----Original Message-----
</i>&gt;&gt;<i> From: <a href="http://www.supercluster.org/mailman/listinfo/torqueusers">torqueusers-bounces at supercluster.org</a>&lt;mailto:<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">torqueusers-bounces at supercluster.org</a>&gt; [mailto:<a href="mailto:torqueusers-">torqueusers-</a>&lt;mailto:<a href="mailto:torqueusers-">torqueusers-</a>&gt;
</i>&gt;&gt;<i> <a href="http://www.supercluster.org/mailman/listinfo/torqueusers">bounces at supercluster.org</a>&lt;mailto:<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">bounces at supercluster.org</a>&gt;] On Behalf Of Matthew Britt
</i>&gt;&gt;<i> Sent: Tuesday, January 22, 2013 11:22 AM
</i>&gt;&gt;<i> To: Torque Users Mailing List
</i>&gt;&gt;<i> Subject: [torqueusers] PBS environmental variables and -V
</i>&gt;&gt;<i>
</i>&gt;&gt;<i> Hello everyone.   What is the expected behavior in precedence between
</i>&gt;&gt;<i> PBS environmental variables and -V when a job is submitted  from an
</i>&gt;&gt;<i> interactive job.  With torque 4.1.4 (and possibly earlier), the variables from
</i>&gt;&gt;<i> the environment of the interactive shell are passed along w/ the newly
</i>&gt;&gt;<i> submitted job (either interactive or batch).   We&#39;ve seen both PBS_O_HOST
</i>&gt;&gt;<i> and PBS_O_WORKDIR be set to values of the first job rather than the
</i>&gt;&gt;<i> attributes of the second job.
</i>&gt;&gt;<i>
</i>&gt;&gt;<i> As an example:
</i>&gt;&gt;<i>
</i>&gt;&gt;<i> [<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at nyx</a> ~]$ cd bin
</i>&gt;&gt;<i> [<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at nyx</a> bin]$ pwd
</i>&gt;&gt;<i> /home/msbritt/bin
</i>&gt;&gt;<i> [<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at nyx</a> bin]$ qsub -I -l nodes=1,walltime=5:00 -q flux -A msbritt_flux -
</i>&gt;&gt;<i> V
</i>&gt;&gt;<i> qsub: waiting for job <a href="http://9445802.nyx.engin.umich.edu">9445802.nyx.engin.umich.edu</a>&lt;<a href="http://9445802.nyx.engin.umich.edu/">http://9445802.nyx.engin.umich.edu</a>&gt; to start
</i>&gt;&gt;<i> qsub: job <a href="http://9445802.nyx.engin.umich.edu">9445802.nyx.engin.umich.edu</a>&lt;<a href="http://9445802.nyx.engin.umich.edu/">http://9445802.nyx.engin.umich.edu</a>&gt; ready
</i>&gt;&gt;<i>
</i>&gt;&gt;<i> [<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at nyx5515</a> ~]$ echo $PBS_O_WORKDIR
</i>&gt;&gt;<i> /home/msbritt/bin
</i>&gt;&gt;<i> [<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at nyx5515</a> ~]$ echo $PBS_O_HOST
</i>&gt;&gt;<i> <a href="http://nyx.engin.umich.edu">nyx.engin.umich.edu</a>&lt;<a href="http://nyx.engin.umich.edu/">http://nyx.engin.umich.edu</a>&gt;
</i>&gt;&gt;<i> [<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at nyx5515</a> ~]$ pwd
</i>&gt;&gt;<i> /home/msbritt
</i>&gt;&gt;<i>
</i>&gt;&gt;<i> [<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at nyx5515</a> ~]$ qsub -I -l nodes=1,walltime=5:00 -q flux -A
</i>&gt;&gt;<i> msbritt_flux -V
</i>&gt;&gt;<i> qsub: waiting for job <a href="http://9445813.nyx.engin.umich.edu">9445813.nyx.engin.umich.edu</a>&lt;<a href="http://9445813.nyx.engin.umich.edu/">http://9445813.nyx.engin.umich.edu</a>&gt; to start
</i>&gt;&gt;<i> qsub: job <a href="http://9445813.nyx.engin.umich.edu">9445813.nyx.engin.umich.edu</a>&lt;<a href="http://9445813.nyx.engin.umich.edu/">http://9445813.nyx.engin.umich.edu</a>&gt; ready
</i>&gt;&gt;<i>
</i>&gt;&gt;<i> [<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at nyx5623</a> ~]$ pwd
</i>&gt;&gt;<i> /home/msbritt
</i>&gt;&gt;<i> [<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at nyx5623</a> ~]$ echo $PBS_O_WORKDIR
</i>&gt;&gt;<i> /home/msbritt/bin    (arguably should be /home/msbritt)
</i>&gt;&gt;<i> [<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at nyx5623</a> ~]$ echo $PBS_O_HOST
</i>&gt;&gt;<i> <a href="http://nyx.engin.umich.edu">nyx.engin.umich.edu</a>&lt;<a href="http://nyx.engin.umich.edu/">http://nyx.engin.umich.edu</a>&gt;  (arguably should be nyx5515)
</i>&gt;&gt;<i>
</i>&gt;&gt;<i>
</i>&gt;&gt;<i> Should -V not read the PBS_O_* variables on job submission or at least be
</i>&gt;&gt;<i> overwritten and correctly set in the next job, or should -V trump ?
</i>&gt;&gt;<i>
</i>&gt;&gt;<i> Thanks,
</i>&gt;&gt;<i>   - Matt
</i>&gt;&gt;<i>
</i>&gt;&gt;<i> --------------------------------------------
</i>&gt;&gt;<i> Matthew Britt
</i>&gt;&gt;<i> CAEN HPC Group - College of Engineering
</i>&gt;&gt;<i> <a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at umich.edu</a>&lt;mailto:<a href="http://www.supercluster.org/mailman/listinfo/torqueusers">msbritt at umich.edu</a>&gt;
</i>&gt;&gt;<i>
</i></pre><div><br></div></pre></div>