My recollection is this change was made to address someone submitting  
a job in which the working directory contained a "#". When Moab read  
job state information from SLURM, it interpreted the "#" as a job  
separator and could not parse anything after that point. Quoting the  
working directory name fixed the problem. This same problem could  
happen with several other fields that could contain a "#". Removing  
this patch will restore this parsing problem.

Moe


Quoting Jon Bringhurst <[email protected]>:

>
> I'd like to propose backing out a patch, as well as removing quotes from
> SUBMITHOST in wiki2.
>
> <http://bugs.schedmd.com/show_bug.cgi?id=29>
>
> <https://github.com/SchedMD/slurm/commit/6cd20848dc3ed5375b637cbf34a6ba6af5fe9653>
>
> It's breaking several things when used with moab 5.3.5, including
> classes and accounts.
>
> For example, we're getting this error:
>
> "NOTE:  job violates constraints for partition slurm (partition
> slurm does not support requested class "standard")"
>
> note that ""standard"" should be "standard".
>
> Here's a patch to back it out as well as remove the quotes from SUBMITHOST:
>
> diff --git a/src/plugins/sched/wiki2/get_jobs.c
> b/src/plugins/sched/wiki2/get_jobs.c
> index 3b6153e..ec5d75b 100644
> --- a/src/plugins/sched/wiki2/get_jobs.c
> +++ b/src/plugins/sched/wiki2/get_jobs.c
> @@ -326,7 +326,7 @@ static char *       _dump_job(struct job_record
> *job_ptr, time_t update_time)
>
>         if (!IS_JOB_FINISHED(job_ptr) && job_ptr->details &&
>             job_ptr->details->work_dir) {
> -               snprintf(tmp, sizeof(tmp), "IWD=\"%s\";",
> +               snprintf(tmp, sizeof(tmp), "IWD=%s;",
>                          job_ptr->details->work_dir);
>                 xstrcat(buf, tmp);
>         }
> @@ -335,17 +335,17 @@ static char *     _dump_job(struct job_record
> *job_ptr, time_t update_time)
>                 xstrcat(buf, "FLAGS=INTERACTIVE;");
>
>         if (job_ptr->gres) {
> -               snprintf(tmp, sizeof(tmp),"GRES=\"%s\";", job_ptr->gres);
> +               snprintf(tmp, sizeof(tmp),"GRES=%s;", job_ptr->gres);
>                 xstrcat(buf, tmp);
>         }
>
>         if (job_ptr->resp_host) {
> -               snprintf(tmp, sizeof(tmp),"SUBMITHOST=\"%s\";",
> job_ptr->resp_host);
> +               snprintf(tmp, sizeof(tmp),"SUBMITHOST=%s;",
> job_ptr->resp_host);
>                 xstrcat(buf, tmp);
>         }
>
>         if (job_ptr->wckey) {
> -               snprintf(tmp, sizeof(tmp),"WCKEY=\"%s\";", job_ptr->wckey);
> +               snprintf(tmp, sizeof(tmp),"WCKEY=%s;", job_ptr->wckey);
>                 xstrcat(buf, tmp);
>         }
>
> @@ -373,7 +373,7 @@ static char *       _dump_job(struct job_record
> *job_ptr, time_t update_time)
>         else
>                 pname = "UNKNOWN";      /* should never see this */
>         snprintf(tmp, sizeof(tmp),
> -               "QUEUETIME=%u;STARTTIME=%u;RCLASS=\"%s\";",
> +               "QUEUETIME=%u;STARTTIME=%u;RCLASS=%s;",
>                 _get_job_submit_time(job_ptr),
>                 (uint32_t) job_ptr->start_time, pname);
>         xstrcat(buf, tmp);
> @@ -407,7 +407,7 @@ static char *       _dump_job(struct job_record
> *job_ptr, time_t update_time)
>
>         if (job_ptr->account) {
>                 snprintf(tmp, sizeof(tmp),
> -                       "ACCOUNT=\"%s\";", job_ptr->account);
> +                       "ACCOUNT=%s;", job_ptr->account);
>                 xstrcat(buf, tmp);
>         }
>
> -Jon
>

Reply via email to