awslabs/agent-plugins/plugins/sagemaker-ai/skills/hyperpod-slurm-debugger/SKILL.md
hyperpod-slurm-debugger
Diagnostic-only skill for Slurm scheduler and node-daemon issues on Amazon SageMaker HyperPod Slurm clusters. Scope mirrors the HyperPod troubleshooting guide. Invoke when the user reports a Slurm node stuck in down/drain, "Node unexpectedly rebooted" after auto-repair, slurmd not running, jobs stuck PENDING with REASON=Resources while sinfo shows idle nodes, jobs stuck COMPLETING after node replacement, GRES/GPU counts wrong, scontrol ping failing, slurmctld unresponsive, an Action:Reboot/Repla
- Source repository stars
- 874
- Declared platforms
- 0
- Static risk flags
- 1
- Last source update
- 2026-08-27
- Source checked
- 2026-08-28
Decision brief
What it does: where it fits
Diagnostic-only. Identify and classify Slurm scheduler and node-daemon issues on HyperPod Slurm clusters. Do not run, recommend, or print any state-mutating command. For remediation, link to the official AWS or Slurm documentation.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/awslabs/agent-plugins --skill "plugins/sagemaker-ai/skills/hyperpod-slurm-debugger"Inspect the Agent Skill "hyperpod-slurm-debugger" from https://github.com/awslabs/agent-plugins/blob/8b13a503746a4ebb0402b936645163224058bde3/plugins/sagemaker-ai/skills/hyperpod-slurm-debugger/SKILL.md at commit 8b13a503746a4ebb0402b936645163224058bde3. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Procedure
1. HyperPod cluster name (not Slurm partition name). 2. AWS region. 3. Optional: a specific Slurm node name.
HyperPod cluster name (not Slurm partition name).AWS region.Optional: a specific Slurm node name. - 02
Step 1 — Collect inputs
1. HyperPod cluster name (not Slurm partition name). 2. AWS region. 3. Optional: a specific Slurm node name.
HyperPod cluster name (not Slurm partition name).AWS region.Optional: a specific Slurm node name. - 03
Step 2 — Confirm orchestrator
If Orchestrator.Eks is present, stop. Route per When NOT to invoke.
If Orchestrator.Eks is present, stop. Route per When NOT to invoke. - 04
Step 3 — Run the diagnostic script
bash bash scripts/slurm-diagnose.sh --cluster --region
bash bash scripts/slurm-diagnose.sh --cluster --region - 05
Step 4 — Map findings → docs
For each finding, look up the section in the decision table and link the user to the corresponding AWS / Slurm doc. Do not type out remediation commands.
For each finding, look up the section in the decision table and link the user to the corresponding AWS / Slurm doc. Do not type out remediation commands.
Permission review
Static risk signals and limitations
Runs scripts
The documentation asks the agent to run terminal commands or scripts.
### Step 3 — Run the diagnostic scriptRuns scripts
The documentation asks the agent to run terminal commands or scripts.
bash scripts/slurm-diagnose.sh --cluster <NAME> --region <REGION>Evidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 94/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 874 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- awslabs/agent-plugins
- Skill path
- plugins/sagemaker-ai/skills/hyperpod-slurm-debugger/SKILL.md
- Commit
- 8b13a503746a4ebb0402b936645163224058bde3
- License
- Apache-2.0
- Collected
- 2026-08-28
- Default branch
- main
View the original SKILL.md
HyperPod Slurm Debugger
Diagnostic-only. Identify and classify Slurm scheduler and node-daemon issues on HyperPod Slurm clusters. Do not run, recommend, or print any state-mutating command. For remediation, link to the official AWS or Slurm documentation.
When to invoke
Invoke when the user reports any of the symptoms in the decision table.
When NOT to invoke
- Cluster has
Orchestrator.Eks— invokehyperpod-node-debuggerorhyperpod-nccl. - Single-node hardware fault with healthy Slurm scheduler — invoke
hyperpod-node-debugger. - NCCL training-hang investigation — invoke
hyperpod-nccl. - Node unreachable via SSM — invoke
hyperpod-ssm.
Constraints
- Read-only. Do not run, recommend, or print state-mutating commands.
- For any remediation, link to AWS or Slurm docs. The user authorizes and executes.
- IaC-managed cluster (Terraform / CloudFormation / CDK): warn that direct mutation drifts the live state from the IaC plan.
Canonical recovery URLs: references/slurm-details.md → Authoritative recovery documentation.
Prerequisites
- AWS CLI v2, authenticated for the target account and region with permissions:
sagemaker:DescribeCluster,sagemaker:ListClusterNodesssm:StartSessionon the HyperPod-created SSM document
- Session Manager plugin installed locally.
jq≥ 1.6.unbuffer(from theexpectpackage). Required — without itaws ssm start-sessionreturns empty stdout intermittently withCannot perform start session: EOFand every check silently misreports. Install:expectpackage on Amazon Linux / RHEL / Debian / Ubuntu / macOS. Script exits at prerequisite check if missing.
Procedure
Step 1 — Collect inputs
Ask the user for:
- HyperPod cluster name (not Slurm partition name).
- AWS region.
- Optional: a specific Slurm node name.
Step 2 — Confirm orchestrator
aws sagemaker describe-cluster --cluster-name <NAME/ARN> --region <REGION> \
--query 'Orchestrator' --output json
If Orchestrator.Eks is present, stop. Route per When NOT to invoke.
Step 3 — Run the diagnostic script
bash scripts/slurm-diagnose.sh --cluster <NAME> --region <REGION>
# Scope to a node:
bash scripts/slurm-diagnose.sh --cluster <NAME> --region <REGION> --node <SLURM_NODE>
Relay the script output to the user verbatim.
Step 4 — Map findings → docs
For each finding, look up the section in the decision table and link the user to the corresponding AWS / Slurm doc. Do not type out remediation commands.
Decision table
Symptom (sinfo -o "%N %T %30E" or script finding) | Section |
|---|---|
Node state = down or down*, reason other than below | A: Node Down |
Node state = down*, Reason = Node unexpectedly rebooted | B: Unexpected Reboot |
Jobs PENDING with REASON=Resources while nodes are idle | C: Controller State |
Jobs stuck COMPLETING after node replacement | C: Controller State |
scontrol ping returns DOWN for the controller | C: Controller State |
| GRES (GPU) counts incorrect or not released | C: Controller State |
state=fail issued but no recovery occurred | D: Action Reason Mismatch |
Accounting errors or RPC errors mentioning dbd | C: Controller State (slurmdbd) |
slurm.conf edited; new partitions or nodes not visible | C: Controller State (config) |
| Job exited on a hardware failure but did not restart | E: Auto-resume |
Defaults
| Behavior | Default | Override |
|---|---|---|
| Mode | read-only — always; no remediation flag exists | n/a |
| Region | $AWS_DEFAULT_REGION, falling back to us-east-1 | --region <R> |
| Scope | all nodes in down / drain / fail / "unexpectedly rebooted" | --node <SLURM_NODE_NAME> |
| Output | colorized terminal | --no-color |
| SSM target format | sagemaker-cluster:<clusterId>_<instanceGroupName>-<instanceId> (derived) | n/a |
| Controller discovery | --controller-group (if set) → SlurmConfig.NodeType=Controller → provisioning_parameters.json | --controller-group <N> |
Error handling
| Failure | Skill behavior | Required user action |
|---|---|---|
describe-cluster fails | Print AWS error; exit 1 | Fix credentials/region; verify cluster name |
Cluster has Orchestrator.Eks | Exit 1 with pointer to EKS-side skills | Use hyperpod-node-debugger or hyperpod-nccl |
session-manager-plugin missing / SSM unreachable | sinfo returns empty; exit 1 | Install plugin; verify node InService |
Disk ≥ 95 % full on a down node | Report finding disk-full-<node> | Refer to AWS troubleshooting docs |
Missing jq or aws | Exit 1 at prerequisite check | Install per Prerequisites |
A: Node Down
Node is down because slurmd stopped responding. Causes: slurmd crash, disk full,
OOM, network partition, hardware fault.
Script checks: systemctl is-active slurmd, srun -w <NODE> hostname (RPC layer), disk,
memory.
If node returns to down after a manual resume → escalate to hyperpod-node-debugger.
Context: references/slurm-details.md § A.
B: Unexpected Reboot
Node is down* with Reason "Node unexpectedly rebooted" because slurmd
re-registered after an out-of-band reboot. Upstream Slurm behavior, not HyperPod.
Node is typically healthy.
Links:
- https://github.com/aws/sagemaker-hyperpod-cluster-setup/blob/troubleshooting-doc-20250917/troubleshoot/index.md
- https://slurm.schedmd.com/scontrol.html (
state=resumesemantics)
If node reboots again within minutes → escalate to hyperpod-node-debugger.
Context: references/slurm-details.md § B.
C: Controller State
slurmctld in-memory state can desync from the on-disk state. A controller restart reloads from StateSaveLocation and clears bad caches. User decides and executes.
Restart may help:
| Symptom | Why |
|---|---|
PENDING with REASON=Resources, idle nodes | Re-evaluates the queue |
Jobs stuck COMPLETING after node replacement | Controller held a reference to the old node |
| GRES (GPU, EFA) not released after a job ends | Resource accounting de-synced |
Nodes stuck Unknown after reboot, slurmd is up | Re-registration was not processed |
scontrol ping times out | Controller event loop is hung |
Lost connection to slurmdbd / RPC errors | DBD connection wedged |
Do NOT restart when:
- HyperPod replacement (
Action:Replace) in progress on any node — concurrent changes fail the replacement. - Only one compute node is bad — restart
slurmdon that node. sinfoandsqueueare responsive — problem is elsewhere.journalctl -u slurmctldnot reviewed yet — panic / OOM will reproduce.slurm.confwas just edited — tryscontrol reconfigurefirst.
Folded triggers
- slurmdbd disconnected —
sacctfails, accounting fields showUnknown, controller log spamsUnable to contact slurmdbd. Restoreslurmdbdbefore considering controller restart. https://slurm.schedmd.com/accounting.html · details. - Stale config —
slurm.conf/topology.confmtime > slurmctld start.scontrol reconfigurefirst; restart is fallback. https://slurm.schedmd.com/scontrol.html · details.
Restart procedure / what's preserved:
- https://slurm.schedmd.com/slurmctld.html
- https://github.com/aws/sagemaker-hyperpod-cluster-setup/blob/troubleshooting-doc-20250917/troubleshoot/index.md
Context: references/slurm-details.md § C.
D: Action Reason Mismatch
scontrol update state=fail reason=... was issued with a reason that does not match
Action:Reboot or Action:Replace exactly. HyperPod silently ignores anything else.
Script detects near-misses on nodes in fail state.
Required strings (case-sensitive, no whitespace, no punctuation):
Action:RebootAction:Replace
Context: references/slurm-details.md § Action reason-string validation.
E: Auto-resume
--auto-resume=1 is an srun step option. It re-runs the step after HMA (the Health
Monitoring Agent) flags a node and Automatic node recovery replaces it.
Why it didn't restart the job:
- Flag on
sbatchnotsrun— per-step;sbatchdirectives are silently ignored. - HMA did not flag the node — failure was application/transient, not hardware. Step exits as a normal Slurm failure.
- Cluster
NodeRecoveryisNone— faulty nodes are labeled but not replaced. - No checkpointing — step restarts from process zero each iteration.
- AMI predates HMA support (released 2025-09-11) — needs AMI / cluster-software update.
Link: https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm-auto-resume.html
Context: references/slurm-details.md § HyperPod auto-resume.
Escalation
| Condition | Next skill |
|---|---|
Node returns to down shortly after a manual resume | hyperpod-node-debugger (hardware) |
slurmd logs contain CUDA / NVIDIA / XID errors | hyperpod-node-debugger § G |
Disk full or /dev/shm exhausted | hyperpod-node-debugger § I |
| Node unreachable via SSM | hyperpod-ssm |
Controller restart does not clear COMPLETING after 2 attempts | hyperpod-issue-report + AWS Support |
Frequently asked questions
What to verify before installation and use
What does the hyperpod-slurm-debugger source document cover?
Diagnostic-only. Identify and classify Slurm scheduler and node-daemon issues on HyperPod Slurm clusters. Do not run, recommend, or print any state-mutating command. For remediation, link to the official AWS or Slurm documentation.
How do I install hyperpod-slurm-debugger?
The source record exposes this install command: npx skills add https://github.com/awslabs/agent-plugins --skill "plugins/sagemaker-ai/skills/hyperpod-slurm-debugger". Inspect the command and pinned source before running it.
Which permission-related actions were detected?
Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.
Alternatives
Compare before choosing
oaustegard/claude-skills
featuring
Generate hierarchical _FEATURES.md files that describe what a codebase DOES from a user/consumer perspective, anchored to source symbols via tree-sitting. Supports large complex codebases through feature-driven decomposition into sub-feature files. Uses a multi-pass synthesis: orientation → detail → overview rewrite. Use when someone says "what does this do", "document features", "feature inventory", "_FEATURES.md", or needs to understand a codebase's purpose before modifying it. Complements tre
dancingteeth/unified-code-review
unified-code-review
Risk-first code review for PRs and branch audits: blast-radius triage, agent-authored discipline (tests first, intent evidence), call-graph pincer for integration defects between modules, then structural code-judo bar. Use when reviewing PRs, auditing agent-written diffs, catching rubber-stamp green CI, or wiring bugs single-file review misses. Prefer over structure-only thermo-nuclear review alone. Do not use for unrelated coding tasks or as an always-on rule.
Postpartum-genushyacinthus29/dotnet-skills
dotnet-worker-services
Build long-running .NET background services with `BackgroundService`, Generic Host, graceful shutdown, configuration, logging, and deployment patterns suited to workers and daemons.
enuno/unifi-mcp-server
unifi-mcp-tool-builder
Specialized guide for adding new MCP tools to the UniFi MCP Server following project standards, UniFi API patterns, and test-driven development practices. Use when implementing new UniFi Network Controller features as MCP tools.