From e167a529a3bc14175fc3aabeab8a48f398868508 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Fri, 20 Sep 2002 23:06:11 +0000
Subject: [PATCH] Added flag to job submit RPC: Kill on node failure, also new
 node state.

---
 src/common/slurm_protocol_defs.c | 2 ++
 src/common/slurm_protocol_defs.h | 3 +++
 src/common/slurm_protocol_pack.c | 2 ++
 3 files changed, 7 insertions(+)

diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c
index 43e6147e8d5..968a32b3332 100644
--- a/src/common/slurm_protocol_defs.c
+++ b/src/common/slurm_protocol_defs.c
@@ -483,6 +483,8 @@ void slurm_init_job_desc_msg(job_desc_msg_t * job_desc_msg)
 {
 	job_desc_msg->contiguous =
 	    (uint16_t) SLURM_JOB_DESC_DEFAULT_CONTIGUOUS;
+	job_desc_msg->kill_on_node_fail =
+	    (uint16_t) SLURM_JOB_DESC_DEFAULT_KILL_NODE_FAIL;
 	job_desc_msg->environment = SLURM_JOB_DESC_DEFAULT_ENVIRONMENT;
 	job_desc_msg->env_size    = SLURM_JOB_DESC_DEFAULT_ENV_SIZE;
 	job_desc_msg->features    = SLURM_JOB_DESC_DEFAULT_FEATURES;
diff --git a/src/common/slurm_protocol_defs.h b/src/common/slurm_protocol_defs.h
index 869dfe3fdec..303aa60ef80 100644
--- a/src/common/slurm_protocol_defs.h
+++ b/src/common/slurm_protocol_defs.h
@@ -246,6 +246,8 @@ typedef struct job_step_specs {
 typedef struct job_descriptor {	/* Job descriptor for submit, allocate, and update requests */
 	uint16_t contiguous;	/* 1 if job requires contiguous nodes, 0 otherwise,
 				 * default=0 */
+	uint16_t kill_on_node_fail; /* 1 if node failure to kill job, 0 otherwise,
+				 * default=1 */
 	char **environment;	/* environment variables to set for job, 
 				   *   name=value pairs, one per line */
 	uint16_t env_size;	/* element count in environment */
@@ -609,6 +611,7 @@ extern char *node_state_string(enum node_states inx);
 extern char *node_state_string_compact(enum node_states inx);
 
 #define SLURM_JOB_DESC_DEFAULT_CONTIGUOUS	NO_VAL
+#define SLURM_JOB_DESC_DEFAULT_KILL_NODE_FAIL	NO_VAL
 #define SLURM_JOB_DESC_DEFAULT_ENVIRONMENT	((char **) NULL)
 #define SLURM_JOB_DESC_DEFAULT_ENV_SIZE 	0
 #define SLURM_JOB_DESC_DEFAULT_FEATURES		NULL
diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c
index 7bcdace110d..e234a99206f 100644
--- a/src/common/slurm_protocol_pack.c
+++ b/src/common/slurm_protocol_pack.c
@@ -1141,6 +1141,7 @@ void pack_job_desc ( job_desc_msg_t * job_desc_ptr, void ** buf_ptr , int * buff
 	/* unpack timestamp of snapshot */
 
 	pack16 (job_desc_ptr->contiguous, buf_ptr, buffer_size);
+	pack16 (job_desc_ptr->kill_on_node_fail, buf_ptr, buffer_size);
 	packstr (job_desc_ptr->features, buf_ptr, buffer_size);
 	pack32 (job_desc_ptr->job_id, buf_ptr, buffer_size);
 	packstr (job_desc_ptr->name, buf_ptr, buffer_size);
@@ -1193,6 +1194,7 @@ int unpack_job_desc ( job_desc_msg_t **job_desc_buffer_ptr, void ** buf_ptr , in
 	/* unpack timestamp of snapshot */
 
 	unpack16 (&job_desc_ptr->contiguous, buf_ptr, buffer_size);
+	unpack16 (&job_desc_ptr->kill_on_node_fail, buf_ptr, buffer_size);
 	unpackstr_xmalloc (&job_desc_ptr->features, &uint16_tmp, buf_ptr, buffer_size);
 	unpack32 (&job_desc_ptr->job_id, buf_ptr, buffer_size);
 	unpackstr_xmalloc (&job_desc_ptr->name, &uint16_tmp, buf_ptr, buffer_size);
-- 
GitLab