diff --git a/NEWS b/NEWS index 210ed01c61ccacbabdd6511ae81450e826a44f08..5d21ff08250a81058e8e7d5473c73ce1c09bafd9 100644 --- a/NEWS +++ b/NEWS @@ -168,6 +168,7 @@ documents those changes that are of interest to users and administrators. ========================== -- Remove StoragePass from being printed out in the slurmdbd log at debug2 level. + -- Defer PATH search for task program until launch in slurmstepd. * Changes in Slurm 16.05.7 ========================== diff --git a/contribs/perlapi/libslurm/perl/job.c b/contribs/perlapi/libslurm/perl/job.c index 707ee40135d4c746796cfbfa6659794b4e7f48ce..3f935921acfd8be818915f40bb687c66b828fb0a 100644 --- a/contribs/perlapi/libslurm/perl/job.c +++ b/contribs/perlapi/libslurm/perl/job.c @@ -486,7 +486,7 @@ hv_to_job_info_msg(HV *hv, job_info_msg_t *job_info_msg) FETCH_FIELD(hv, job_info_msg, last_update, time_t, TRUE); svp = hv_fetch(hv, "job_array", 9, FALSE); if (! (svp && SvROK(*svp) && SvTYPE(SvRV(*svp)) == SVt_PVAV)) { - Perl_warn (aTHX_ "job_array is not an arrary reference in HV for job_info_msg_t"); + Perl_warn (aTHX_ "job_array is not an array reference in HV for job_info_msg_t"); return -1; } av = (AV*)SvRV(*svp); diff --git a/src/plugins/burst_buffer/cray/burst_buffer_cray.c b/src/plugins/burst_buffer/cray/burst_buffer_cray.c index 0facd503d3fba6db3c83085872351325549bf988..43af1805645174e42723b6a1faa0aff138656bc5 100644 --- a/src/plugins/burst_buffer/cray/burst_buffer_cray.c +++ b/src/plugins/burst_buffer/cray/burst_buffer_cray.c @@ -698,7 +698,7 @@ static bb_job_t *_get_bb_job(struct job_record *job_ptr) } /* At slurmctld start up time, for every currently active burst buffer, - * update that user's limit */ + * update that user's limit. Also log every recovered buffer */ static void _apply_limits(void) { bool emulate_cray = false; @@ -711,6 +711,9 @@ static void _apply_limits(void) for (i = 0; i < BB_HASH_SIZE; i++) { bb_alloc = bb_state.bb_ahash[i]; while (bb_alloc) { + info("Recovered buffer Name:%s User:%u Pool:%s Size:%"PRIu64, + bb_alloc->name, bb_alloc->user_id, + bb_alloc->pool, bb_alloc->size); _set_assoc_mgr_ptrs(bb_alloc); bb_limit_add(bb_alloc->user_id, bb_alloc->size, bb_alloc->pool, &bb_state, emulate_cray); diff --git a/src/slurmd/slurmstepd/slurmstepd_job.c b/src/slurmd/slurmstepd/slurmstepd_job.c index e29e84e4a9dfce2f9e76d5cdf7817589994a9515..06bd1b8ee0d2c110210374b89166546c3307671e 100644 --- a/src/slurmd/slurmstepd/slurmstepd_job.c +++ b/src/slurmd/slurmstepd/slurmstepd_job.c @@ -65,7 +65,6 @@ #include "src/slurmd/slurmstepd/fname.h" #include "src/slurmd/slurmstepd/multi_prog.h" #include "src/slurmd/slurmstepd/slurmstepd_job.h" -#include "src/slurmd/slurmstepd/task.h" #ifdef HAVE_NATIVE_CRAY static bool already_validated_uid = true; @@ -157,12 +156,6 @@ _job_init_task_info(stepd_step_rec_t *job, uint32_t **gtid, job->task = (stepd_step_task_info_t **) xmalloc(job->node_tasks * sizeof(stepd_step_task_info_t *)); - if (((job->flags & LAUNCH_MULTI_PROG) == 0) && job->argv) { - char *new_path = build_path(job->argv[0], job->env, job->cwd); - xfree(job->argv[0]); - job->argv[0] = new_path; - } - for (i = 0; i < job->node_tasks; i++) { in = _expand_stdio_filename(ifname, gtid[node_id][i], job); out = _expand_stdio_filename(ofname, gtid[node_id][i], job); diff --git a/src/slurmd/slurmstepd/task.c b/src/slurmd/slurmstepd/task.c index 63e10be794c09a6d7179a29fef70445286cd0050..d8edddd637ff2914ec72f608c625aabf355ebc0c 100644 --- a/src/slurmd/slurmstepd/task.c +++ b/src/slurmd/slurmstepd/task.c @@ -264,7 +264,7 @@ _run_script_and_set_env(const char *name, const char *path, /* Given a program name, translate it to a fully qualified pathname as needed * based upon the PATH environment variable and current working directory * Returns xmalloc()'d string that must be xfree()'d */ -extern char *build_path(char *fname, char **prog_env, char *cwd) +extern char *_build_path(char *fname, char **prog_env, char *cwd) { char *path_env = NULL, *dir; char *file_name; @@ -340,7 +340,7 @@ extern void block_daemon(void); void exec_task(stepd_step_rec_t *job, int i) { - uint32_t *gtids; /* pointer to arrary of ranks */ + uint32_t *gtids; /* pointer to array of ranks */ int fd, j; stepd_step_task_info_t *task = job->task[i]; char **tmp_env; @@ -396,7 +396,7 @@ exec_task(stepd_step_rec_t *job, int i) * is left up to the server to search the PATH for the * executable. */ - task->argv[0] = build_path(task->argv[0], job->env, NULL); + task->argv[0] = _build_path(task->argv[0], job->env, NULL); } if (!job->batch) { diff --git a/src/slurmd/slurmstepd/task.h b/src/slurmd/slurmstepd/task.h index 6c09d78930ee2f0c74a3aff964cf1de1cc781e17..74043c3a51afb7668bbeb381543b7003223d2d0b 100644 --- a/src/slurmd/slurmstepd/task.h +++ b/src/slurmd/slurmstepd/task.h @@ -47,8 +47,4 @@ void exec_task(stepd_step_rec_t *job, int i); -/* Given a program name, translate it to a fully qualified pathname as needed - * based upon the PATH environment variable and current working directory */ -extern char *build_path(char* fname, char **prog_env, char *cwd); - #endif /* !_TASK_H */