That is a misreading of the original design document.
“create nodes” refers to the natural node name given in the “create nodes” command in qmgr, and the natural node when MoM starts up is controlled by the MoM short name, which indeed needs to be set to PBS_MOM_NODE_NAME, but is not required to be a hostname.
The original design document does indeed need to be revisited, but in THIS section:
" If PBS_MOM_NODE_NAME is unset and the call to gethostbyname [sic] fails OR if PBS_MOM_NODE_NAME is set and the value does not conform to RFCs 952 and 1123, the following message will be printed to the log:
Unable to obtain my host name"
But this line is already internally inconsistent with the heading above it, which reads “Log messages when MoM fails to identify its hostname” [emphasis mine].
MoM only fails to identify its hostname if gethostname() fails. [Incidentally, the design document incorrectly refers to gethostbyname(), which is to find a host when you know the name, but here we are trying to find the name in the first place.]
So if gethostname() succeeds, there is no need for PBS_MOM_NODE_NAME to comply with hostname RFCs.
So that suggests that the internally consistent paragraph there would be:
“If the call to gethostname fails and PBS_MOM_NODE_NAME is set and the value does not conform to RFCs 952 and 1123, the following message will be printed to the log: Unable to obtain my host name”
The implementation also has important implications that do not derive from the design document: if PBS_MOM_NODE_NAME is set, it also sets mom_host to PBS_MOM_NODE_NAME, even if gethostname() succeeds.
That is not mandated by either of the interface headings of the design document nor even the sentence that is inconsistent with the heading; indeed, when you read the heading “when MoM fails to identify its hostname”, to me it implies that this is only done ON THE CONDITION that gethostname has failed (at least that is what the vernacular “when” suggests to me).