Ask a questionAsk a question
 

AnswerCannot pass environment variables containing ";" via job submit

  • Wednesday, April 08, 2009 7:59 PMDr.Darshan Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    I have a cluster with Windows HPC Server 2008 and Microsoft HPC Pack. I am trying to submit a job using the "job submit" command that needs to set an environment variable with semi-colon delimited values for each task. I have tried the following alternatives, but each of them fails in the same manner:
    Microsoft Windows [Version 6.0.6001]
    Copyright (c) 2006 Microsoft Corporation.  All rights reserved.

    C:\Users\XXXXX>job submit /env:key="value1;value2" dir
    Bad format for 'env' parameter.  Should be /env:name=value;*

    C:\Users\XXXXX>job submit /env:"key=value1;value2" dir
    Bad format for 'env' parameter.  Should be /env:name=value;*

    C:\Users\XXXXX>job submit /env:key=value1;value2 dir
    Bad format for 'env' parameter.  Should be /env:name=value;*

    Could someone please let me know what I am doing incorrectly? The error message is quite incomprehensible and the documentation did not address this problem.

Answers

  • Friday, April 17, 2009 7:04 PMMWirtz Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    I believe you're not doing anything wrong, because the "job submit" command seems to use the ";" as a string delimiter while parsing the argument /env. I guess it's just impossible that way. Maybe you could try to add the set variable command to your commandline string  e.g. like this:

    job submit set key=value1;value2 ^&^& dir

    Make sure to mask the "&" with "^" because otherwise the dir command would be executed directly after your submission command in the local shell.
    Hope this helps.

    - Michael
    • Marked As Answer byDr.Darshan Tuesday, May 05, 2009 6:28 PM
    •  
  • Saturday, May 02, 2009 12:28 AMsayanch1MSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    This issue should be fixed in SP1. However, you might try using the SetEnvironmentVariable method in the Scheduler API as that might work.
    • Marked As Answer byDr.Darshan Tuesday, May 05, 2009 6:29 PM
    •  

All Replies

  • Friday, April 17, 2009 7:04 PMMWirtz Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    I believe you're not doing anything wrong, because the "job submit" command seems to use the ";" as a string delimiter while parsing the argument /env. I guess it's just impossible that way. Maybe you could try to add the set variable command to your commandline string  e.g. like this:

    job submit set key=value1;value2 ^&^& dir

    Make sure to mask the "&" with "^" because otherwise the dir command would be executed directly after your submission command in the local shell.
    Hope this helps.

    - Michael
    • Marked As Answer byDr.Darshan Tuesday, May 05, 2009 6:28 PM
    •  
  • Saturday, May 02, 2009 12:28 AMsayanch1MSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    This issue should be fixed in SP1. However, you might try using the SetEnvironmentVariable method in the Scheduler API as that might work.
    • Marked As Answer byDr.Darshan Tuesday, May 05, 2009 6:29 PM
    •  
  • Tuesday, May 05, 2009 6:24 PMDr.Darshan Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Thank you, that was indeed helpful.
  • Tuesday, May 05, 2009 6:28 PMDr.Darshan Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Thank you, I will wait for SP1 and use the previous workaround meanwhile. I would have preferred to use the Scheduler API, but cannot because I am submitting jobs from a Python application.
    • Marked As Answer byDr.Darshan Tuesday, May 05, 2009 6:28 PM
    • Unmarked As Answer byDr.Darshan Tuesday, May 05, 2009 6:28 PM
    •