diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index a306a1a014642eaa340ef94310f4f6a77661a557..58480a27ad1059dbf045b2a9cf911c41cca3040e 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -628,7 +628,6 @@ int copy_job_desc_to_job_record ( job_desc_msg_t * job_desc , struct job_record else set_job_prio (job_ptr); - detail_ptr = job_ptr->details; detail_ptr->num_procs = job_desc->num_procs; detail_ptr->num_nodes = job_desc->num_nodes; @@ -638,15 +637,22 @@ int copy_job_desc_to_job_record ( job_desc_msg_t * job_desc , struct job_record } if (job_desc->features) detail_ptr->features = xstrdup ( job_desc->features ); - - detail_ptr->shared = job_desc->shared; - detail_ptr->contiguous = job_desc->contiguous; - detail_ptr->min_procs = job_desc->min_procs; - detail_ptr->min_memory = job_desc->min_memory; - detail_ptr->min_tmp_disk = job_desc->min_tmp_disk; - detail_ptr->dist = (enum task_dist) job_desc->dist; - detail_ptr->job_script = xstrdup ( job_desc->job_script); - detail_ptr->procs_per_task = job_desc->procs_per_task; + if (job_desc->shared != NO_VAL) + detail_ptr->shared = job_desc->shared; + if (job_desc->contiguous != NO_VAL) + detail_ptr->contiguous = job_desc->contiguous; + if (job_desc->min_procs != NO_VAL) + detail_ptr->min_procs = job_desc->min_procs; + if (job_desc->min_memory != NO_VAL) + detail_ptr->min_memory = job_desc->min_memory; + if (job_desc->min_tmp_disk != NO_VAL) + detail_ptr->min_tmp_disk = job_desc->min_tmp_disk; + if (job_desc->dist != NO_VAL) + detail_ptr->dist = (enum task_dist) job_desc->dist; + if (job_desc->procs_per_task != NO_VAL) + detail_ptr->procs_per_task = job_desc->procs_per_task; + if (job_desc->job_script) + detail_ptr->job_script = xstrdup ( job_desc->job_script ); /* job_ptr->nodes *leave as NULL pointer for now */ /* job_ptr->start_time *leave as NULL pointer for now */ /* job_ptr->end_time *leave as NULL pointer for now */ @@ -656,7 +662,10 @@ int copy_job_desc_to_job_record ( job_desc_msg_t * job_desc , struct job_record return 0; } -int validate_job_desc ( job_desc_msg_t * job_desc_msg , int allocate ) +/* validate_job_desc - validate that a job descriptor for job submit or + * allocate has valid data, set values to defaults as required */ +int +validate_job_desc ( job_desc_msg_t * job_desc_msg , int allocate ) { if ((job_desc_msg->num_procs == NO_VAL) && (job_desc_msg->num_nodes == NO_VAL) && (job_desc_msg->req_nodes == NULL)) {