diff --git a/NEWS b/NEWS index dd8b735e77347af7c6a5e6538937c33d04f92a7c..aea5687c30d49603945f747d5d5fd2a3f6b0d7e5 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,10 @@ documents those changes that are of interest to users and admins. * Changes in SLURM 0.4.0-pre5 ============================= + -- select/bluegene plugin confirms db.properties file in $sysconfdir + and copies it to StateSaveLocation (slurmctld's working directory) + -- slurmd to always give jobs KillWait time between SIGTERM and SIGKILL + at termination * Changes in SLURM 0.4.0-pre4 ============================= diff --git a/src/slurmd/req.c b/src/slurmd/req.c index de5564069cb6c7f66180a2ac4f61ad7d025cc11d..27b790d9065723cde80c567951418cd314bc12ea 100644 --- a/src/slurmd/req.c +++ b/src/slurmd/req.c @@ -713,7 +713,8 @@ _rpc_timelimit(slurm_msg_t *msg, slurm_addr *cli_addr) /* * Check to see if any processes are still around */ - if ((nsteps > 0) && _job_still_running(req->job_id)) { + if ((nsteps > 0) && _job_still_running(req->job_id) + && (conf->cf.kill_wait > 1)) { verbose( "Job %u: waiting %d secs for SIGKILL", req->job_id, conf->cf.kill_wait ); sleep (conf->cf.kill_wait - 1); @@ -964,6 +965,7 @@ _rpc_kill_job(slurm_msg_t *msg, slurm_addr *cli) kill_job_msg_t *req = msg->data; uid_t uid = g_slurm_auth_get_uid(msg->cred); int nsteps = 0; + int delay; /* * check that requesting user ID is the SLURM UID @@ -1032,7 +1034,8 @@ _rpc_kill_job(slurm_msg_t *msg, slurm_addr *cli) /* * Check for corpses */ - if ( !_pause_for_job_completion (req->job_id, 5) + delay = MAX(conf->cf.kill_wait, 5); + if ( !_pause_for_job_completion (req->job_id, delay) && _kill_all_active_steps(req->job_id, SIGKILL, true) ) { /* * Block until all user processes are complete.