Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Ticket

Jira Legacy
serverJIRA (pbspro.atlassian.net)
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId32008a99-7831-3ff8-9638-3db0cd01164d
keyPP-668
will address a problem with execjob_launch hooks in PBS where a job's environment gets truncated if one of the environment variables has a newline (\n), comma (,), or single/double quotes appearing as values. The solution involves raw string handling of the job's Variable_List, which is used to populate a job's environment.  Currently, when jobs are submitted with the -V option and there are environment variables with special characters,  PBS already escapes the comma, single/double quotes in values by prefixing them with the backslash (\) in both Linux/Unix and Windows. However, with execjob_launch hooks enabled, this leads to a problem with Windows in that backslash is considered a legal pathname character. PP-668 implementation will use caret (^) as the escape character on Windows for the mentioned special characters. Note that the escape character itself will also get escaped, appearing as \\ under Linux/Unix and ^^ under Windows.

Interfaces:

  • Interface 1: Variable_List output in qstat -f, pbs.event().job.Variable_List/pbs.event().env  hooks output
    • Visibility: Public
    • Change Control: Stable
    • Synopsis: When On Windows, when jobs are submitted with the -V option, and some environment variables contain comma, single/double quote, or the caret symbol, then qstat -f will show the Variable_List with the caret (^) symbol escaping these characters, instead of the use of backslash (\) as done previously. This is the same thing with the output of pbs.event().job.Variable_List and pbs.event().env output in hooks.
    • Example:
      Given:
         PROCESSOR_IDENTIFIER=x86 Family 6 Model 58 Stepping 9, GenuineIntel
         TEST_COMMA=1,2,3,4
         TEST_DQUOTE2=happy days"are"here to stay
         TEST_SQUOTE4=that's the way it goes
         TEST_CARET=^
      shows up in qstat -f as:
         Variable_List = ...PROCESSOR_IDENTIFIER=x86 Family 6 Model 58 Stepping 9^, GenuineIntel,
         TEST_COMMA=1^,2^,3^,4,TEST_DQUOTE2=happy days^"are^"here to stay,TEST_SQUOTE4=that^'s the way it goes,TEST_CARET=^^
      Under Linux/Unix, one gets:
         Variable_List = ...PROCESSOR_IDENTIFIER=x86 Family 6 Model 58 Stepping 9\, GenuineIntel,
         TEST_COMMA=1\,2\,3\,4,TEST_DQUOTE2=happy days\"are\"here to stay,TEST_SQUOTE4=that\'s the way it goes,TEST_CARET=^


...

Site Map

Developer Guide Pages

...