Summary
hpc status <id> on an array job or a heterogeneous job reports the
accounting fields of the first parent row only.
The polling path fixed in #10 already aggregates across rows, so
hpc submit --wait correctly waits until every task is terminal —
but the new detail path added in #5 has no equivalent treatment.
Reproduction
For an array job whose tasks finish with mixed outcomes (e.g. one OOM,
two COMPLETED), the user sees:
Job 12345_0: COMPLETED
ExitCode: 0:0
Elapsed: 00:01:23
MaxRSS: 1024K
ReqMem: 16Gn
…with no indication that another task was OUT_OF_MEMORY.
Same shape for hetjob leaders: only the first component's accounting
is rendered.
Proposal
Render either:
- one block per task / het component (probably gated by an opt-in flag
to avoid noise on large arrays), with the parent row identified by
the canonical JobID (e.g. 12345_0, 12345_1 for array tasks;
12345+0, 12345+1 for het components), or
- an aggregate summary line (e.g.
3 tasks: 2 COMPLETED, 1 OUT_OF_MEMORY)
with per-task drill-down on demand.
The exact UX shape is part of this issue.
Out of scope
Summary
hpc status <id>on an array job or a heterogeneous job reports theaccounting fields of the first parent row only.
The polling path fixed in #10 already aggregates across rows, so
hpc submit --waitcorrectly waits until every task is terminal —but the new detail path added in #5 has no equivalent treatment.
Reproduction
For an array job whose tasks finish with mixed outcomes (e.g. one OOM,
two COMPLETED), the user sees:
…with no indication that another task was OUT_OF_MEMORY.
Same shape for
hetjobleaders: only the first component's accountingis rendered.
Proposal
Render either:
to avoid noise on large arrays), with the parent row identified by
the canonical
JobID(e.g.12345_0,12345_1for array tasks;12345+0,12345+1for het components), or3 tasks: 2 COMPLETED, 1 OUT_OF_MEMORY)with per-task drill-down on demand.
The exact UX shape is part of this issue.
Out of scope
wait_for_jobpath (already handled in fix(scheduler): aggregate Slurm sacct rows for array job wait #10).