feat(resreq-maxtasks-wiring): submit real multi-task job across hosts

Extends xce-test-multihost's harness to submit one real job via plain
jobsub, sized (nproc+1 tasks, queried live) so it must span both
mh-worker-1 and mh-worker-2, poll jobinfo for RUN then DONE, and
confirm each allocated host's own log independently shows it starting
its share of the job's tasks.

The two allocated hosts take genuinely different code paths: the
controller sends startjob only to the head-node host
(dispatch_a_job_(), job.c); that host's job_start_remote_task()
relays a runtasks request back through the controller
(do_runtasks()/run_tasks_on_host(), task.c) to the other host, which
independently calls submit_fork_task(). The harness's per-host
verification accepts either line as legitimate evidence for that
host, since which host lands as head node is an allocator-internal
detail this test correctly doesn't hardcode.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XYdtrEWWZfKRRGED7raEYg
This commit is contained in:
Rongsong Shen 2026-09-06 09:12:14 +00:00
parent 0313b910a9
commit 7fd673cc31
No known key found for this signature in database
GPG key ID: 5BCDAAE0123E9FE2
3 changed files with 397 additions and 152 deletions

View file

@ -65,7 +65,7 @@
- _Boundary: xce-test-multihost_
- _Depends: 2.1, 2.2_
- [ ] 4.2 Prove a plain multi-task job is genuinely scheduled and completes across multiple hosts
- [x] 4.2 Prove a plain multi-task job is genuinely scheduled and completes across multiple hosts
- Submit a real multi-task job through normal job submission (not a manual-allocation bypass) and poll until it reaches a running state, then confirm it reaches completion
- Confirm each allocated host's own log shows its share of the job's tasks actually starting
- Observable: a PASS verdict confirms the scheduler's own decision spans both hosts and the job completes successfully on both