fix(service): add environment variables and fix work directory permissions for Slurm job submission
Slurm requires environment variables in job submission; without them it returns 'batch job cannot run without an environment'. Also chmod the entire directory path to 0777 to bypass umask, ensuring Slurm and compute node users can write. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -174,9 +174,14 @@ func (s *ApplicationService) SubmitFromApplication(ctx context.Context, applicat
|
||||
safeName := sanitizeDirName(app.Name)
|
||||
subDir := time.Now().Format("20060102_150405") + "_" + randomSuffix(4)
|
||||
workDir = filepath.Join(s.workDirBase, safeName, subDir)
|
||||
if err := os.MkdirAll(workDir, 0755); err != nil {
|
||||
if err := os.MkdirAll(workDir, 0777); err != nil {
|
||||
return nil, fmt.Errorf("create work directory %s: %w", workDir, err)
|
||||
}
|
||||
// 绕过 umask,确保整条路径都有写权限
|
||||
for dir := workDir; dir != s.workDirBase; dir = filepath.Dir(dir) {
|
||||
os.Chmod(dir, 0777)
|
||||
}
|
||||
os.Chmod(s.workDirBase, 0777)
|
||||
}
|
||||
|
||||
req := &model.SubmitJobRequest{Script: rendered, WorkDir: workDir}
|
||||
|
||||
@@ -44,6 +44,11 @@ func (s *JobService) SubmitJob(ctx context.Context, req *model.SubmitJobRequest)
|
||||
}
|
||||
}
|
||||
|
||||
jobDesc.Environment = slurm.StringArray{
|
||||
"PATH=/usr/local/bin:/usr/bin:/bin",
|
||||
"HOME=/root",
|
||||
}
|
||||
|
||||
submitReq := &slurm.JobSubmitReq{
|
||||
Script: &script,
|
||||
Job: jobDesc,
|
||||
|
||||
Reference in New Issue
Block a user