Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
mxqd: Don't free() before exec() or _exit().
  • Loading branch information
donald committed May 9, 2022
1 parent 88d9aa4 commit 79ce67c
Showing 1 changed file with 3 additions and 15 deletions.
18 changes: 3 additions & 15 deletions mxqd.c
Expand Up @@ -997,7 +997,7 @@ static void exec_reaper(struct mxq_server *server,struct mxq_group_list *glist,
char *mxq_job_tmpdir = mx_asprintf_forever("%s/%lu", MXQ_JOB_TMPDIR_MNTDIR, job->job_id);
mx_setenv_forever("MXQ_JOB_TMPDIR", mxq_job_tmpdir);
mx_setenv_forever("TMPDIR", mxq_job_tmpdir);
free(mxq_job_tmpdir);
// not needed before exec() or exit(): free(mxq_job_tmpdir);
}
if (group->job_gpu) {
char *argv[] = {
Expand All @@ -1013,9 +1013,7 @@ static void exec_reaper(struct mxq_server *server,struct mxq_group_list *glist,
exit(1);
}
mx_setenv_forever("CUDA_VISIBLE_DEVICES", gpu_uuid);
free(gpu_uuid);
free(argv[2]);
free(argv[3]);
// not needed before exec() or exit(): free(gpu_uuid); free(argv[2]); free(argv[3]);
}

int fh = open("/proc/self/loginuid", O_WRONLY|O_TRUNC);
Expand Down Expand Up @@ -1124,6 +1122,7 @@ static void exec_reaper(struct mxq_server *server,struct mxq_group_list *glist,
for (int i = 0; i < argc ; i++)
new_argv[i+4] = argv[i];
new_argv[argc+4] = NULL;
// not needed before exec() or exit: free(argv); free(argv[1]); free(argv[2]);

if (setuid(0) == -1) {
mx_log_err("job=%s(%d):%lu:%lu setuid(0) failed: %m",
Expand Down Expand Up @@ -1209,19 +1208,8 @@ static unsigned long start_job(struct mxq_group_list *glist)
return 0;
} else if (pid == 0) {
job->host_pid = getpid();

mx_log_debug("starting reaper process.");
mx_funlock_nodelete(server->flock);
server->flock = NULL;
mx_mysql_finish(&server->mysql);

exec_reaper(server, glist, job);

mxq_job_free_content(job);

mx_log_debug("shutting down reaper, bye bye.");
mx_log_finish();
server_free(server);
_exit(EX__MAX+1);
}

Expand Down

0 comments on commit 79ce67c

Please sign in to comment.