Skip to content

Commit

Permalink
mxqd: Unload job if job setup fails
Browse files Browse the repository at this point in the history
If a job is LOADED and we fail during early job setup,
then set the job back to INQ.
  • Loading branch information
donald committed Jan 29, 2020
1 parent 88579ac commit 5cabb59
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion mxqd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1177,7 +1177,6 @@ unsigned long start_job(struct mxq_group_list *glist)
mx_log_info(" job=%s(%d):%lu:%lu :: new job loaded.",
group->user_name, group->user_uid, group->group_id, job->job_id);


if (group->job_tmpdir_size > 0) {
mx_mysql_disconnect(server->mysql);
pid = fork();
Expand All @@ -1197,10 +1196,12 @@ unsigned long start_job(struct mxq_group_list *glist)
mx_mysql_connect_forever(&(server->mysql));
if (pid < 0) {
mx_log_err("fork: %m");
mxq_unload_job_from_server(server->mysql, daemon, job->job_id);
return(0);
}
waitpid(pid, &status, 0);
if (status) {
mxq_unload_job_from_server(server->mysql, daemon, job->job_id);
return 0;
}
}
Expand All @@ -1217,6 +1218,7 @@ unsigned long start_job(struct mxq_group_list *glist)
if (pid < 0) {
mx_log_err("fork: %m");
cpuset_clear_running(&job->host_cpu_set,&server->cpu_set_available);
mxq_unload_job_from_server(server->mysql, daemon, job->job_id);
return 0;
} else if (pid == 0) {
job->host_pid = getpid();
Expand Down

0 comments on commit 5cabb59

Please sign in to comment.