diff --git a/mxqd.c b/mxqd.c index 0294b74b..915e5e09 100644 --- a/mxqd.c +++ b/mxqd.c @@ -919,7 +919,7 @@ static int is_reaper(pid_t pid) { return 0; } -static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, struct mxq_job *job) { +static void exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, struct mxq_job *job) { int res; struct mxq_group *group; @@ -929,19 +929,19 @@ static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, s res = prctl(PR_SET_NAME, REAPER_PNAME, NULL, NULL, NULL); if (res < 0) { mx_log_err("reaper_process set name: %m"); - return res; + return; } res = setsid(); if (res < 0) { mx_log_err("reaper_process setsid: %m"); - return res; + return; } res = prctl(PR_SET_CHILD_SUBREAPER, 1); if (res < 0) { mx_log_err("set subreaper: %m"); - return res; + return; } struct passwd *passwd; @@ -955,7 +955,7 @@ static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, s if (!passwd) { mx_log_err("job=%s(%d):%lu:%lu getpwuid(): %m", group->user_name, group->user_uid, group->group_id, job->job_id); - return -1; + return; } if (!mx_streq(passwd->pw_name, group->user_name)) { @@ -972,7 +972,7 @@ static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, s if (!passwd) { mx_log_err("job=%s(%d):%lu:%lu getpwnam(): %m", group->user_name, group->user_uid, group->group_id, job->job_id); - return -1; + return; } if (passwd->pw_uid != group->user_uid) { mx_log_fatal("job=%s(%d):%lu:%lu user_name=%s does not map to uid=%d but to pw_uid=%d. Aborting Child execution.", @@ -984,7 +984,7 @@ static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, s group->user_uid, passwd->pw_uid); - return -1; + return; } } @@ -994,7 +994,7 @@ static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, s if (res != 0) { mx_log_err("job=%s(%d):%lu:%lu clearenv(): %m", group->user_name, group->user_uid, group->group_id, job->job_id); - return -1; + return; } mx_setenv_forever("USER", group->user_name); @@ -1046,7 +1046,7 @@ static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, s if (fh == -1) { mx_log_err("job=%s(%d):%lu:%lu open(%s) failed: %m", group->user_name, group->user_uid, group->group_id, job->job_id, "/proc/self/loginuid"); - return -1; + return; } dprintf(fh, "%d", group->user_uid); close(fh); @@ -1085,7 +1085,7 @@ static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, s if (res == -1) { mx_log_err("job=%s(%d):%lu:%lu initgroups() failed: %m", group->user_name, group->user_uid, group->group_id, job->job_id); - return -1; + return; } res = setregid(group->user_gid, group->user_gid); @@ -1093,7 +1093,7 @@ static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, s mx_log_err("job=%s(%d):%lu:%lu setregid(%d, %d) failed: %m", group->user_name, group->user_uid, group->group_id, job->job_id, group->user_gid, group->user_gid); - return -1; + return; } res = setreuid(-1, group->user_uid); @@ -1101,7 +1101,7 @@ static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, s mx_log_err("job=%s(%d):%lu:%lu setreuid(%d, %d) failed: %m", group->user_name, group->user_uid, group->group_id, job->job_id, group->user_uid, group->user_uid); - return -1; + return; } res = chdir(job->job_workdir); @@ -1109,7 +1109,7 @@ static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, s mx_log_err("job=%s(%d):%lu:%lu chdir(%s) failed: %m", group->user_name, group->user_uid, group->group_id, job->job_id, job->job_workdir); - return -1; + return; } umask(job->job_umask); @@ -1127,7 +1127,7 @@ static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, s group->group_id, job->job_id, res); - return(res); + return; } res = mxq_redirect_output(job->tmp_stdout, job->tmp_stderr); @@ -1138,7 +1138,7 @@ static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, s group->group_id, job->job_id, res); - return(res); + return; } char **argv = mx_strvec_from_str(job->job_argv_str); @@ -1149,7 +1149,7 @@ static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, s group->group_id, job->job_id, job->job_argv_str); - return -errno; + return; } int argc = 0; @@ -1172,17 +1172,16 @@ static int exec_reaper(struct mxq_server *server,struct mxq_group_list *glist, s group->user_uid, group->group_id, job->job_id); - return -errno; + return; } - res = execvp(new_argv[0], new_argv); + execvp(new_argv[0], new_argv); mx_log_err("job=%s(%d):%lu:%lu execvp(\"%s\", ...): %m", group->user_name, group->user_uid, group->group_id, job->job_id, argv[0]); - return res; } static unsigned long start_job(struct mxq_group_list *glist) @@ -1257,14 +1256,14 @@ static unsigned long start_job(struct mxq_group_list *glist) server->flock = NULL; mx_mysql_finish(&server->mysql); - res = exec_reaper(server, glist, job); + 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(res<0 ? EX__MAX+1 : 0); + _exit(EX__MAX+1); } gettimeofday(&job->stats_starttime, NULL);