From a5ace79c4754ccf0f2c277090863cb7aef7d9292 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Sat, 5 Apr 2003 00:11:44 +0000
Subject: [PATCH] Set job end time when cancelled.

---
 src/slurmctld/job_mgr.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index 5b8f3f47ef9..0aa2cade072 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -1177,9 +1177,10 @@ int job_signal(uint32_t job_id, uint16_t signal, uid_t uid)
 
 	if ((job_ptr->job_state == JOB_PENDING) &&
 	    (signal == SIGKILL)) {
-		last_job_update = now;
-		job_ptr->job_state = JOB_FAILED;
-		job_ptr->start_time = job_ptr->end_time = time(NULL);
+		last_job_update		= now;
+		job_ptr->job_state	= JOB_FAILED;
+		job_ptr->start_time	= now;
+		job_ptr->end_time	= now;
 		delete_job_details(job_ptr);
 		verbose("job_signal of pending job %u successful", job_id);
 		return SLURM_SUCCESS;
@@ -1188,24 +1189,24 @@ int job_signal(uint32_t job_id, uint16_t signal, uid_t uid)
 	if (job_ptr->job_state == JOB_RUNNING) {
 		ListIterator step_record_iterator;
 		struct step_record *step_ptr;
-		int step_cnt = 0;
 
 		step_record_iterator = 
 				list_iterator_create (job_ptr->step_list);		
 		while ((step_ptr = (struct step_record *)
 					list_next (step_record_iterator))) {
 			signal_step_tasks(step_ptr, signal);
-			step_cnt++;
 		}
 		list_iterator_destroy (step_record_iterator);
 
 		if (signal == SIGKILL) {
-			job_ptr->time_last_active   = now;
-			last_job_update = now;
+			job_ptr->time_last_active	= now;
+			job_ptr->end_time		= now;
+			last_job_update			= now;
 			job_ptr->job_state = JOB_COMPLETE | JOB_COMPLETING;
 			deallocate_nodes(job_ptr, false);
 		}
-		verbose("job_signal of running job %u successful", job_id);
+		verbose("job_signal %u of running job %u successful", 
+			signal, job_id);
 		return SLURM_SUCCESS;
 	}
 
-- 
GitLab