diff --git a/src/slurmd/req.c b/src/slurmd/req.c index f4f150edd4545a4e1b82353cfb373060a6b0adbf..9b58c175171a41305403b1fb125cd361d39f8bce 100644 --- a/src/slurmd/req.c +++ b/src/slurmd/req.c @@ -688,11 +688,12 @@ _rpc_kill_tasks(slurm_msg_t *msg, slurm_addr *cli_addr) kill_proc_tree(step->sid, req->signal); rc = SLURM_SUCCESS; } else { - if (kill(-step->sid, req->signal) < 0) + if (step->sid + && (kill(-step->sid, req->signal) < 0)) rc = errno; - if (step->task_list - && (kill (-step->task_list->pid, req->signal) < 0)) + if (step->task_list && step->task_list->pid + && (kill (-step->task_list->pid, req->signal) < 0)) rc = errno; if (rc == SLURM_SUCCESS) @@ -961,10 +962,11 @@ _kill_all_active_steps(uint32_t jobid, int sig, bool batch) } else { debug2("signal %d to job %u (pg:%d)", sig, jobid, s->sid); - if (kill(-s->sid, sig) < 0) + if (s->sid + && (kill(-s->sid, sig) < 0)) error("kill jid %d sid %d: %m", s->jobid, s->sid); - if (s->task_list + if (s->task_list && s->task_list->pid && (kill(-s->task_list->pid, sig) < 0)) error("kill jid %d pgrp %d: %m", s->jobid, s->task_list->pid);