diff --git a/NEWS b/NEWS index 2f99166786ca795baf18072e1b96ba1b829f84a4..44f85e16242c6f18a33cb6d29a124c69da1387be 100644 --- a/NEWS +++ b/NEWS @@ -21,6 +21,7 @@ documents those changes that are of interest to users and administrators. Issue is only in rc1. -- Add PrivateData value of "cloud". If set, powered down nodes in the cloud will be visible. + -- Sched/backfill - Eliminate clearing start_time of running jobs. * Changes in Slurm 14.11.0rc1 ============================= diff --git a/src/plugins/sched/backfill/backfill.c b/src/plugins/sched/backfill/backfill.c index b2dad0651d09007135ad17ca0693548ae0a18bb6..3b0b57ff618a2973e75891a423352234ce76da36 100644 --- a/src/plugins/sched/backfill/backfill.c +++ b/src/plugins/sched/backfill/backfill.c @@ -622,7 +622,7 @@ extern void *backfill_agent(void *args) return NULL; } -/* Clear the start_time for all jobs. This is used to insure that a job which +/* Clear the start_time for all pending jobs. This is used to insure that a job which * can run in multiple partitions has its start_time set to the smallest * value in any of those partitions. */ static void _clear_job_start_times(void) @@ -631,8 +631,9 @@ static void _clear_job_start_times(void) struct job_record *job_ptr; job_iterator = list_iterator_create(job_list); - while ((job_ptr =(struct job_record *) list_next(job_iterator))) { - job_ptr->start_time = 0; + while ((job_ptr = (struct job_record *) list_next(job_iterator))) { + if (IS_JOB_PENDING(job_ptr)) + job_ptr->start_time = 0; } list_iterator_destroy(job_iterator); } @@ -838,8 +839,7 @@ static int _attempt_backfill(void) xfree(job_queue_rec); continue; } - if (backfill_continue) - orig_start_time = job_ptr->start_time; + orig_start_time = job_ptr->start_time; orig_time_limit = job_ptr->time_limit; part_ptr = job_queue_rec->part_ptr; xfree(job_queue_rec); diff --git a/src/plugins/select/cons_res/select_cons_res.c b/src/plugins/select/cons_res/select_cons_res.c index 3bf8c8c6a88f16ad4a02c761edd0bc64a2138713..ebddcc088b30890338de995b407aa6a4e30b4a5b 100644 --- a/src/plugins/select/cons_res/select_cons_res.c +++ b/src/plugins/select/cons_res/select_cons_res.c @@ -1698,7 +1698,7 @@ static int _will_run_test(struct job_record *job_ptr, bitstr_t *bitmap, select_node_usage, exc_core_bitmap); if (rc == SLURM_SUCCESS) { FREE_NULL_BITMAP(orig_map); - job_ptr->start_time = time(NULL); + job_ptr->start_time = now; return SLURM_SUCCESS; } diff --git a/testsuite/expect/test31.1 b/testsuite/expect/test31.1 index d5622cd771e660239c5451b42e232dad1959f863..388a3ed8a6d91c6286cd15c3638cc8249465abc7 100755 --- a/testsuite/expect/test31.1 +++ b/testsuite/expect/test31.1 @@ -40,11 +40,16 @@ set proc "" set run_host "" set make_file 0 set exit_code 0 +set pcmd_prog "/opt/cray/nodehealth/default/bin/pcmd" print_header $test_id if {[test_cray]} { set make_file 1 + if { [file exists $pcmd_prog] == 0 } { + send_user "\nFAILURE: The file $pcmd_prog was not found\n" + exit $exit_code + } } if { [string compare [test_launch_type] "slurm"] } { send_user "\nWARNING: This test is only compatible with systems using launch/slurm\n" @@ -96,12 +101,12 @@ proc change_pro_epi { arg program_name conf_change task_pro } { } proc check_file { file_name } { - global test_id exit_code file_dir run_host + global test_id exit_code file_dir run_host pcmd_prog sleep 1 set found 0 - spawn /opt/cray/nodehealth/default/bin/pcmd -n $run_host "find $file_dir -name $file_name" + spawn $pcmd_prog -n $run_host "find $file_dir -name $file_name" expect { -re "$file_dir/$file_name" { set found 1