locked
Cannot pass environment variables containing ";" via job submit RRS feed

  • Question

  • 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.
    Wednesday, April 8, 2009 7:59 PM

Answers

  • 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 by Dr.Darshan Tuesday, May 5, 2009 6:28 PM
    Friday, April 17, 2009 7:04 PM
  • 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 by Dr.Darshan Tuesday, May 5, 2009 6:29 PM
    Saturday, May 2, 2009 12:28 AM
    Moderator

All replies

  • 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 by Dr.Darshan Tuesday, May 5, 2009 6:28 PM
    Friday, April 17, 2009 7:04 PM
  • 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 by Dr.Darshan Tuesday, May 5, 2009 6:29 PM
    Saturday, May 2, 2009 12:28 AM
    Moderator
  • Thank you, that was indeed helpful.
    Tuesday, May 5, 2009 6:24 PM
  • 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 by Dr.Darshan Tuesday, May 5, 2009 6:28 PM
    • Unmarked as answer by Dr.Darshan Tuesday, May 5, 2009 6:28 PM
    Tuesday, May 5, 2009 6:28 PM