View | Details | Raw Unified | Return to ticket 6613
Collapse All | Expand All

(-)a/slurm/slurm.h.in (-4 / +3 lines)
Lines 3365-3374 typedef struct job_step_kill_msg { Link Here
3365
	char *sibling;
3365
	char *sibling;
3366
} job_step_kill_msg_t;
3366
} job_step_kill_msg_t;
3367
3367
3368
/* NOTE: Only 8 bits available for kill flags. kill_tasks_msg_t->signal is
3368
/*
3369
 * uint32_t and only 12 bits are used for the signal. These flags are << 24
3369
 * NOTE:  See _signal_batch_job() controller and _rpc_signal_tasks() in slurmd.
3370
 * leaving 8 bits for flags.
3370
 */
3371
 * See _signal_batch_job() controller and _rpc_signal_tasks() in slurmd. */
3372
#define KILL_JOB_BATCH	 0x0001	/* signal batch shell only */
3371
#define KILL_JOB_BATCH	 0x0001	/* signal batch shell only */
3373
#define KILL_JOB_ARRAY	 0x0002	/* kill all elements of a job array */
3372
#define KILL_JOB_ARRAY	 0x0002	/* kill all elements of a job array */
3374
#define KILL_STEPS_ONLY	 0x0004	/* Do not signal batch script */
3373
#define KILL_STEPS_ONLY	 0x0004	/* Do not signal batch script */
(-)a/src/api/signal.c (-2 / +3 lines)
Lines 127-133 static int _signal_job_step(const job_step_info_t *step, Link Here
127
	/* same remote procedure call for each node */
127
	/* same remote procedure call for each node */
128
	rpc.job_id = step->job_id;
128
	rpc.job_id = step->job_id;
129
	rpc.job_step_id = step->step_id;
129
	rpc.job_step_id = step->step_id;
130
	rpc.signal = (uint32_t)signal;
130
	rpc.signal = signal;
131
	rpc.flags = 0;
131
	rc = _local_send_recv_rc_msgs(allocation->node_list,
132
	rc = _local_send_recv_rc_msgs(allocation->node_list,
132
				      REQUEST_SIGNAL_TASKS, &rpc);
133
				      REQUEST_SIGNAL_TASKS, &rpc);
133
	return rc;
134
	return rc;
Lines 220-226 slurm_signal_job (uint32_t job_id, uint16_t signal) Link Here
220
221
221
	/* same remote procedure call for each node */
222
	/* same remote procedure call for each node */
222
	rpc.job_id = job_id;
223
	rpc.job_id = job_id;
223
	rpc.signal = (uint32_t)signal;
224
	rpc.signal = signal;
224
	rpc.flags = KILL_STEPS_ONLY;
225
	rpc.flags = KILL_STEPS_ONLY;
225
226
226
	rc = _local_send_recv_rc_msgs(alloc_info->node_list,
227
	rc = _local_send_recv_rc_msgs(alloc_info->node_list,
(-)a/src/api/step_launch.c (-1 / +2 lines)
Lines 851-857 extern void slurm_step_launch_fwd_signal(slurm_step_ctx_t *ctx, int signo) Link Here
851
	/* common to all tasks */
851
	/* common to all tasks */
852
	msg.job_id      = ctx->job_id;
852
	msg.job_id      = ctx->job_id;
853
	msg.job_step_id = ctx->step_resp->job_step_id;
853
	msg.job_step_id = ctx->step_resp->job_step_id;
854
	msg.signal      = (uint32_t) signo;
854
	msg.signal      = (uint16_t) signo;
855
	msg.flags       = 0;
855
856
856
	slurm_mutex_lock(&sls->lock);
857
	slurm_mutex_lock(&sls->lock);
857
858

Return to ticket 6613