sge_dl(8)

πŸ’– sge_dl(8) β€” the dl glow-up guide πŸ’–

okay bestie, welcome to sge_dl(8), aka the System Manager's Manual page for the dl script, and no, it's not a "download" thing, it's a debug tracing thing. stay with me, this is actually so useful.


✨ NAME ✨

dl</purl> β€” setting SGE debug tracing information

like. that's it. that's the whole vibe. it sets up your SGE debug tracing info. πŸ’…


🌸 SYNOPSIS 🌸

source $SGE_ROOT/util/dl.sh
dl level

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the tea. the dl shell script alias is obtained by sourcing one of the scripts $SGE_ROOT/util/dl.sh or $SGE_ROOT/util/dl.csh, for Bourne and C shell respectively. (pick your fighter, both are iconic.)

it provides a convenient way to set up the environment to produce certain SGE debugging information. it is mostly useful for maintainers, but may occasionally be useful to users diagnosing problems. and okay, tiny confession moment: in that case it probably indicates a need for extra user-level messages logged in the spool area or elsewhere, which should be improved. (not me calling out the codebase but like… πŸ™ˆ)

the level argument specifies the printing of debugging output by the SGE components as described below, or 0 to turn off debugging output and reset the other environment variables concerned. when tracing is on, output goes to the stderr stream. dl also sets (or, with argument 0, resets) the SGE_ND environment variable to make daemon programs run in the foreground rather than actually daemonizing, and also SGE_ENABLE_COREDUMP, which enables core dumps from daemons which change user or group. the trace output is most often used for debugging daemons; some is available from client programs but is typically less useful. (client traces are giving "participation trophy", fr fr.)

🌈 Debugging levels 🌈

debugging is specified in terms of "layers", describing particular components of the system, such as libraries, indexed by a number:

  • TOP (0) β€” General information;
  • CULL (1) β€” List-processing (not used consistently);
  • BASIS (2) β€” Apparently intended for low-level routines, such as string processing, but used quite generally;
  • GUI (3) β€” Operations in the qmon graphical client;
  • GDI (6) β€” Grid Engine Database Interface for dealing with "objects" maintained by the qmaster process;
  • PACK (7) β€” Packing and unpacking network data.

the other indices are unused. (not them ghosting us 😭)

there are also different "classes" which determine the type/amount of information printed, again indexed by a number:

  • TRACE (1) β€” Tracing function enter/exit (generated by DENTER, DEXIT etc. macros);
  • INFOPRINT (2) β€” General information (generated by DPRINTF);
  • TIMING (16) β€” Time taken by execd to start a job;
  • LOCK (32) β€” Locking/mutex information.

other classes are defined, but currently unused. for those and unused layers, see the source file libs/uti/sge_rmon_monitoring_level.h. πŸ‘‘

the layers and classes are combined into a number of different "levels" which may be used as the argument of dl to select the output layers and classes, as follows:

  • Level 0 β€” Layer(s): - β€” Class(es): turn off all
  • Level 1 β€” Layer(s): TOP β€” Class(es): INFOPRINT
  • Level 2 β€” Layer(s): TOP β€” Class(es): TRACE + INFOPRINT
  • Level 3 β€” Layer(s): TOP + CULL + GDI β€” Class(es): INFOPRINT
  • Level 4 β€” Layer(s): TOP + CULL + GDI β€” Class(es): TRACE + INFOPRINT
  • Level 5 β€” Layer(s): TOP + GUI + GDI β€” Class(es): INFOPRINT
  • Level 6 β€” Layer(s): TOP + CULL + BASIS + GDI β€” Class(es): LOCK
  • Level 9 β€” Layer(s): TOP + CULL + BASIS β€” Class(es): INFOPRINT
  • Level 10 β€” Layer(s): TOP + CULL + BASIS + PACK β€” Class(es): TRACE + INFOPRINT

with other levels unused. 10 is not usually interesting. (respectfully. it's just not the moment.)


πŸŽ€ FILES πŸŽ€

  • $SGE_ROOT/util/dl.sh,$SGE_ROOT/util/dl.csh

πŸ’œ ENVIRONMENT VARIABLES πŸ’œ

  • SGE_DEBUG_LEVEL, SGE_ND, and SGE_ENABLE_COREDUMP, as above

🌟 real talk: if you're reaching for dl to debug something a user is hitting, that's your sign that the user-level messages in the spool area or elsewhere could probably use some love. fix the messages, bestie. it's giving self-care for your logs.

and that's the whole page!! 🫢 this one's from the System Manager's Manual, version-dated 2012-01-18, filed under sge_dl(8) β€” go forth and trace responsibly, you absolute icon πŸ’–βœ¨πŸŒˆ