Software Name
slurm-why
Public URL
https://github.com/ajinkyakadam/slurm-why
Technical Overview
slurm-why is a read-only CLI that translates confusing Slurm job states -- OOM kills, cryptic pending-reason codes, resource requests that will never be granted, broken --dependency chains, decoded exit codes, node failures, and reservation waits -- into a plain-English Diagnosis -> Why -> Fix, instead of requiring users to manually cross-reference raw sacct/squeue/scontrol output.
It's complementary, not competing with anything already in OpenHPC's distribution: since OpenHPC ships Slurm as its default resource manager, slurm-why is a support-load-reducing tool for exactly the population OpenHPC serves -- HPC users on a shared cluster who don't have deep Slurm internals knowledge, and admins triaging user tickets. An --admin mode adds raw technical detail for operators, and admin queue triages every pending job cluster-wide, bucketing "will never run as submitted" jobs before a confused user files a ticket.
It shells out to the standard Slurm client commands (sacct/squeue/scontrol/sacctmgr), which are already present and required on any OpenHPC login node running Slurm -- nothing new needs to be installed alongside it for these to be available.
Latest stable version number
0.4.0
Open-source license type
MIT
Relationship to component?
I'm the author/maintainer.
Build system
If other, please describe:
Go module (go build), compiled to a single static binary (CGO_ENABLED=0), cross-compiled for linux/{amd64,arm64,ppc64le} and darwin/{amd64,arm64}. Releases are packaged via GoReleaser, which also produces RPMs (via nfpm) for RHEL-family systems.
Does the current build system support staged path installations?
For example: make install DESTIR=/tmp/foo (or equivalent)
The RPM build path uses a real staged install; the raw binary is also just a single file with no install-time path baking, so it can be dropped anywhere (e.g. ~/.local/bin).
Does component run in user space or are administrative credentials required?
Every lookup slurm-why performs is something an ordinary user can already run themselves (sacct, squeue, scontrol show partition, sacctmgr show qos/show assoc for read access) -- no root, sudo, or elevated Slurm role is required for standard usage. --admin mode doesn't require new privileges either; it just doesn't get in the way of an operator's own pre-existing elevated Slurm role for cross-user visibility.
Does component require post-installation configuration.
If yes, please describe briefly:
Works out of the box on any login node with the standard Slurm CLI tools on $PATH. (A slurmrestd REST backend is planned as an alternative to the CLI backend, and will require optional site-specific endpoint/token configuration when it lands -- not required for current functionality.)
If component is selected, are you willing and able to collaborate with OpenHPC maintainers during the integration process?
Does the component include test collateral (e.g. regression/verification tests) in the publicly shipped source?
If yes, please briefly describe the intent and location of the tests.
Fixture-based unit tests (internal/datasource/cli/testdata/) covering both CLI-output parsing and diagnosis logic, run via go test ./... -race -cover in CI on every push/PR (~73% overall coverage, ~98% in the core diagnosis package). Tests never invoke real Slurm binaries -- fixtures captured from a live cluster stand in for them. Separately, test/cluster/ is a Docker Compose-based local Slurm cluster (compiled from SchedMD's official source, checksum-verified) used to manually validate every diagnosis against real sacct/squeue/scontrol output, including genuine cgroup-enforced OOM kills; this has been re-run against Slurm 26.05.2, 24.11.7, 23.02.8, and 21.08.8-2 to confirm cross-version behavior.
Does the component have additional software dependencies (beyond compilers/MPI) that are not part of standard Linux distributions?
If yes, please list the dependencies and associated licenses.
Pure Go with a small number of Go-module dependencies (notably Cobra for CLI argument parsing), statically compiled into the final binary -- nothing to install at runtime beyond Slurm's own client tools, which are already a given on any Slurm login node.
Does the component include online or installable documentation?
If available online, please provide URL.
README (https://github.com/ajinkyakadam/slurm-why#readme), install instructions for no-root and RPM paths (https://github.com/ajinkyakadam/slurm-why/blob/main/docs/install.md), and a CONTRIBUTING.md for building/testing from source.
[Optional]: Would you like to receive additional review feedback by email?
Software Name
slurm-why
Public URL
https://github.com/ajinkyakadam/slurm-why
Technical Overview
slurm-why is a read-only CLI that translates confusing Slurm job states -- OOM kills, cryptic pending-reason codes, resource requests that will never be granted, broken
--dependencychains, decoded exit codes, node failures, and reservation waits -- into a plain-English Diagnosis -> Why -> Fix, instead of requiring users to manually cross-reference rawsacct/squeue/scontroloutput.It's complementary, not competing with anything already in OpenHPC's distribution: since OpenHPC ships Slurm as its default resource manager, slurm-why is a support-load-reducing tool for exactly the population OpenHPC serves -- HPC users on a shared cluster who don't have deep Slurm internals knowledge, and admins triaging user tickets. An
--adminmode adds raw technical detail for operators, andadmin queuetriages every pending job cluster-wide, bucketing "will never run as submitted" jobs before a confused user files a ticket.It shells out to the standard Slurm client commands (
sacct/squeue/scontrol/sacctmgr), which are already present and required on any OpenHPC login node running Slurm -- nothing new needs to be installed alongside it for these to be available.Latest stable version number
0.4.0
Open-source license type
MIT
Relationship to component?
I'm the author/maintainer.
Build system
If other, please describe:
Go module (
go build), compiled to a single static binary (CGO_ENABLED=0), cross-compiled for linux/{amd64,arm64,ppc64le} and darwin/{amd64,arm64}. Releases are packaged via GoReleaser, which also produces RPMs (via nfpm) for RHEL-family systems.Does the current build system support staged path installations?
For example:
make install DESTIR=/tmp/foo(or equivalent)The RPM build path uses a real staged install; the raw binary is also just a single file with no install-time path baking, so it can be dropped anywhere (e.g.
~/.local/bin).Does component run in user space or are administrative credentials required?
Every lookup slurm-why performs is something an ordinary user can already run themselves (
sacct,squeue,scontrol show partition,sacctmgr show qos/show assocfor read access) -- no root, sudo, or elevated Slurm role is required for standard usage.--adminmode doesn't require new privileges either; it just doesn't get in the way of an operator's own pre-existing elevated Slurm role for cross-user visibility.Does component require post-installation configuration.
If yes, please describe briefly:
Works out of the box on any login node with the standard Slurm CLI tools on
$PATH. (AslurmrestdREST backend is planned as an alternative to the CLI backend, and will require optional site-specific endpoint/token configuration when it lands -- not required for current functionality.)If component is selected, are you willing and able to collaborate with OpenHPC maintainers during the integration process?
Does the component include test collateral (e.g. regression/verification tests) in the publicly shipped source?
If yes, please briefly describe the intent and location of the tests.
Fixture-based unit tests (
internal/datasource/cli/testdata/) covering both CLI-output parsing and diagnosis logic, run viago test ./... -race -coverin CI on every push/PR (~73% overall coverage, ~98% in the core diagnosis package). Tests never invoke real Slurm binaries -- fixtures captured from a live cluster stand in for them. Separately,test/cluster/is a Docker Compose-based local Slurm cluster (compiled from SchedMD's official source, checksum-verified) used to manually validate every diagnosis against realsacct/squeue/scontroloutput, including genuine cgroup-enforced OOM kills; this has been re-run against Slurm 26.05.2, 24.11.7, 23.02.8, and 21.08.8-2 to confirm cross-version behavior.Does the component have additional software dependencies (beyond compilers/MPI) that are not part of standard Linux distributions?
If yes, please list the dependencies and associated licenses.
Pure Go with a small number of Go-module dependencies (notably Cobra for CLI argument parsing), statically compiled into the final binary -- nothing to install at runtime beyond Slurm's own client tools, which are already a given on any Slurm login node.
Does the component include online or installable documentation?
If available online, please provide URL.
README (https://github.com/ajinkyakadam/slurm-why#readme), install instructions for no-root and RPM paths (https://github.com/ajinkyakadam/slurm-why/blob/main/docs/install.md), and a CONTRIBUTING.md for building/testing from source.
[Optional]: Would you like to receive additional review feedback by email?