Versions Compared

Key

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

Overview

Users can type special non-printing characters (special control characters) in terminal and submit them as a job’s environment variable, or as account name using qsub. Similarly, a user can set a reservation attribute value with an embedded non-printing characters using pbs_rsub. Also with qmgr, one can create hook names with special non-printing characters, or set a node's comment value to have such special characters. These non-printing characters are potentially dangerous as they can alter  the output of qstat, pbs_rstat, pbsnodes, printjob, tracejob, and qmgr.

...

Running pbs_rstat -f, pbs_rstat -f -Fjson would F would show in bold red the text after the 'Authorized_Hosts' output.

...

Most of the linux utility commands use some kind of scheme to escape non-printing characters when printing to stdout For example, cat -v displays non-printing characters using a caret followed by a capital letter or a symbol. This design proposes using the same scheme in PBS for showing non-printing characters in attribute or resource value  output in qstat, pbs_rstat, pbsnodes, printjob, tracejob, and qmgr. 

Below is a table that contains the mapping of non-printing characters to their escaped representation, EXCEPT for the following characters:TAB (\t), LF (\n) which are displayed as is (like in 'cat -v`) or converted in some form by PBS in its output (.e.g JSON format). 


Dec  Char                           Escaped
---  -----------------------------  -------
  0  NUL (null)                     ^@
  1  SOH (start of heading)         ^A
  2  STX (start of text)            ^B
  3  ETX (end of text)              ^C
  4  EOT (end of transmission)      ^D
  5  ENQ (enquiry)                  ^E
  6  ACK (acknowledge)              ^F
  7  BEL (bell)                     ^G
  8  BS  (backspace)                ^H
  9  TAB (horizontal tab)           ^I
 10  LF  (NL line feed, new line)   ^J
 11  VT  (vertical tab)             ^K
 12  FF  (NP form feed, new page)   ^L
 13  CR  (carriage return)          ^M
 14  SO  (shift out)                ^N
 15  SI  (shift in)                 ^O
 16  DLE (data link escape)         ^P
 17  DC1 (device control 1)         ^Q
 18  DC2 (device control 2)         ^R
 19  DC3 (device control 3)         ^S
 20  DC4 (device control 4)         ^T
 21  NAK (negative acknowledge)     ^U
 22  SYN (synchronous idle)         ^V
 23  ETB (end of trans. block)      ^W
 24  CAN (cancel)                   ^X
 25  EM  (end of medium)            ^Y
 26  SUB (substitute)               ^Z
 27  ESC (escape)                   ^[
 28  FS  (file separator)           ^\
 29  GS  (group separator)          ^]
 30  RS  (record separator)         ^^
 31  US  (unit separator)           ^_

...

NOTE: The output conversion is only done in Linux/Unix code.

...

OSS Site Map

Project Documentation Main Page

Developer Guide Pages

...

Page Properties
hiddentrue
idPP-design

Ignore this.  We may use it later for page characterization.

...