Ticket - PP-668Getting issue details... STATUS 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.
- Interface 1: Variable_List output in qstat -f, pbs.event().job.Variable_List/pbs.event().env hooks output
- Visibility: Public
- Change Control: Stable
- Synopsis: 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.
PROCESSOR_IDENTIFIER=x86 Family 6 Model 58 Stepping 9, GenuineIntel
TEST_DQUOTE2=happy days"are"here to stay
TEST_SQUOTE4=that's the way it goes
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=^