diff --git a/src/slurmd/common/run_script.c b/src/slurmd/common/run_script.c index 5db528ebf10209a7bdd6858b2c9389c4b9a5d8aa..08010f51f75c9cecb4dbc72b341913e496de0d71 100644 --- a/src/slurmd/common/run_script.c +++ b/src/slurmd/common/run_script.c @@ -157,7 +157,7 @@ _run_one_script(const char *name, const char *path, uint32_t job_id, exit(127); } - if (container_g_add_pid(job_id, cpid, uid) != SLURM_SUCCESS) + if (container_g_add_pid(job_id, cpid, getuid()) != SLURM_SUCCESS) error("container_g_add_pid(%u): %m", job_id); if (waitpid_timeout(name, cpid, &status, max_wait) < 0) diff --git a/src/slurmd/slurmd/req.c b/src/slurmd/slurmd/req.c index 2cd5ae175487b01a027de3e0c03a8338bb38dae4..ff34b7973424586b4a2851616e5892ecb49d148c 100644 --- a/src/slurmd/slurmd/req.c +++ b/src/slurmd/slurmd/req.c @@ -4300,7 +4300,7 @@ _run_spank_job_script (const char *mode, char **env, uint32_t job_id, uid_t uid) exit (127); } - if (container_g_add_pid(job_id, cpid, uid) != SLURM_SUCCESS) + if (container_g_add_pid(job_id, cpid, getuid()) != SLURM_SUCCESS) error("container_g_add_pid(%u): %m", job_id); close (pfds[0]); diff --git a/src/slurmd/slurmstepd/mgr.c b/src/slurmd/slurmstepd/mgr.c index 4e43e440ca35a6be133b4b240e3575e82e979798..f0de161542d83b19514c8b01fd9bf67a543f49c4 100644 --- a/src/slurmd/slurmstepd/mgr.c +++ b/src/slurmd/slurmstepd/mgr.c @@ -1052,7 +1052,7 @@ fail2: * terminated before the switch window can be released by * interconnect_postfini(). */ - step_terminate_monitor_start(job->jobid, job->stepid, job->uid); + step_terminate_monitor_start(job->jobid, job->stepid); if (job->cont_id != 0) { slurm_container_signal(job->cont_id, SIGKILL); slurm_container_wait(job->cont_id); diff --git a/src/slurmd/slurmstepd/req.c b/src/slurmd/slurmstepd/req.c index 926df60d770f706a7891a74c8c4f963a52a3d9a0..4fb25d373dc93c340f3381d514c0920e29826406 100644 --- a/src/slurmd/slurmstepd/req.c +++ b/src/slurmd/slurmstepd/req.c @@ -903,7 +903,7 @@ _handle_terminate(int fd, stepd_step_rec_t *job, uid_t uid) debug("_handle_terminate for step=%u.%u uid=%d", job->jobid, job->stepid, uid); - step_terminate_monitor_start(job->jobid, job->stepid, job->uid); + step_terminate_monitor_start(job->jobid, job->stepid); if (uid != job->uid && !_slurm_authorized_user(uid)) { debug("terminate req from uid %ld for job %u.%u " diff --git a/src/slurmd/slurmstepd/step_terminate_monitor.c b/src/slurmd/slurmstepd/step_terminate_monitor.c index 2c5bf5f2012f6c74befec8d4b4d22f1ba017650c..2a8da7197572434383152b119ecc530b31f273f5 100644 --- a/src/slurmd/slurmstepd/step_terminate_monitor.c +++ b/src/slurmd/slurmstepd/step_terminate_monitor.c @@ -58,12 +58,11 @@ static uint16_t timeout; static char *program_name; static uint32_t recorded_jobid = NO_VAL; static uint32_t recorded_stepid = NO_VAL; -static uid_t recorded_uid = 0; static void *_monitor(void *); static int _call_external_program(void); -void step_terminate_monitor_start(uint32_t jobid, uint32_t stepid, uid_t uid) +void step_terminate_monitor_start(uint32_t jobid, uint32_t stepid) { slurm_ctl_conf_t *conf; pthread_attr_t attr; @@ -92,7 +91,6 @@ void step_terminate_monitor_start(uint32_t jobid, uint32_t stepid, uid_t uid) running_flag = 1; recorded_jobid = jobid; recorded_stepid = stepid; - recorded_uid = uid; pthread_mutex_unlock(&lock); @@ -203,8 +201,7 @@ static int _call_external_program(void) exit(127); } - if (container_g_add_pid(recorded_jobid, cpid, recorded_uid) != - SLURM_SUCCESS) + if (container_g_add_pid(recorded_jobid,cpid,getuid()) != SLURM_SUCCESS) error("container_g_add_pid(%u): %m", recorded_jobid); opt = WNOHANG; diff --git a/src/slurmd/slurmstepd/step_terminate_monitor.h b/src/slurmd/slurmstepd/step_terminate_monitor.h index 984481e21a0edf4f6d62a12e6c7931f82b46a5c6..e9c016a67b105a424ac447a4925390986934281e 100644 --- a/src/slurmd/slurmstepd/step_terminate_monitor.h +++ b/src/slurmd/slurmstepd/step_terminate_monitor.h @@ -45,7 +45,7 @@ * If step_terminate_monitor_stop() is called before the time runs * out, the external program will not be called. */ -void step_terminate_monitor_start(uint32_t jobid, uint32_t stepid, uid_t uid); +void step_terminate_monitor_start(uint32_t jobid, uint32_t stepid); /* * Stop the timer in the step terminate monitor pthread, and kill