fix(apiserver): reject submit options the job never gets; add exec_home (bug-1936)
Cause: CreateJob accepted in_file, out_file, err_file, out_dir, asked_hosts, begin_time, term_time and transfer_files and returned success, but neither the controller's submit data/start info nor the worker carries any of them (the worker never stages transferred files), so they were silently dropped. Exec home had no submit field at all, and a relative cwd would have been resolved against the worker unit's directory. Fix: new preCheckSubmitOptions() runs right after binding, before file uploads and ID allocation, and answers 400 naming every unsupported option that is set; cwd and the new exec_home field must be absolute and fit the worker's job_assignment_t buffers (1023 bytes). exec_home goes to JobInfo.ExecHome and from there (submitStartInfo) to the start info's exechome. num_files already reaches exdata as nofile_limit; a handler test now pins it. The array %J/%I submit-time substitution test (9.4) checks cwd instead of out_file/err_file, which are now refused. Swagger regenerated with `swag init -g cmd/main.go -o docs`. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
725b1d23fd
commit
edad8c7385
6 changed files with 200 additions and 12 deletions
|
|
@ -673,8 +673,9 @@ type JobSubmitRequest struct {
|
|||
ChkpntPeriod int `json:"chkpnt_period,omitempty"`
|
||||
ChkpntDir string `json:"chkpnt_dir,omitempty"`
|
||||
InitChkpntPeriod int `json:"init_chkpnt_period,omitempty"`
|
||||
CWD string `json:"cwd,omitempty"`
|
||||
FromHost string `json:"from_host,omitempty"` // client-asserted submitting hostname (bug-1676) -- passed through unchanged, not derived server-side
|
||||
CWD string `json:"cwd,omitempty"` // absolute; the job runs here on the worker (bug-1936)
|
||||
ExecHome string `json:"exec_home,omitempty" example:"/home/alice"` // absolute; HOME of the job on the worker (bug-1936)
|
||||
FromHost string `json:"from_host,omitempty"` // client-asserted submitting hostname (bug-1676) -- passed through unchanged, not derived server-side
|
||||
OutDir string `json:"out_dir,omitempty"`
|
||||
InFile string `json:"in_file,omitempty"`
|
||||
OutFile string `json:"out_file,omitempty"`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue