Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
mxq_job: Only load jobs assigned for the group that should be started
this fixes mariux64#7
  • Loading branch information
mariux committed Oct 27, 2015
1 parent 8449d36 commit 2200fd6
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 5 deletions.
10 changes: 6 additions & 4 deletions mxq_job.c
Expand Up @@ -601,7 +601,7 @@ int mxq_job_set_tmpfilenames(struct mxq_group *g, struct mxq_job *j)
return 1;
}

int mxq_load_job_assigned_to_server(struct mx_mysql *mysql, struct mxq_job **mxq_jobs, char *hostname, char *server_id)
int mxq_load_job_from_group_assigned_to_server(struct mx_mysql *mysql, struct mxq_job **mxq_jobs, uint64_t group_id, char *hostname, char *server_id)
{
int res;
struct mxq_job *jobs = NULL;
Expand All @@ -624,14 +624,16 @@ int mxq_load_job_assigned_to_server(struct mx_mysql *mysql, struct mxq_job **mxq
" WHERE job_status = " status_str(MXQ_JOB_STATUS_ASSIGNED)
" AND host_hostname = ?"
" AND server_id = ?"
" AND group_id = ?"
" LIMIT 1";

res = mx_mysql_bind_init_param(&param, 2);
res = mx_mysql_bind_init_param(&param, 3);
assert(res == 0);

res = 0;
res += mx_mysql_bind_var(&param, 0, string, &hostname);
res += mx_mysql_bind_var(&param, 1, string, &server_id);
res += mx_mysql_bind_var(&param, 2, uint64, &group_id);
assert(res == 0);

res = bind_result_job_fields(&result, &j);
Expand Down Expand Up @@ -662,10 +664,10 @@ int mxq_load_job_from_group_for_server(struct mx_mysql *mysql, struct mxq_job *m
assert(*host_id);

do {
res = mxq_load_job_assigned_to_server(mysql, &jobs, hostname, server_id);
res = mxq_load_job_from_group_assigned_to_server(mysql, &jobs, group_id, hostname, server_id);

if(res < 0) {
mx_log_err(" group_id=%lu :: mxq_load_job_assigned_to_server: %m", group_id);
mx_log_err(" group_id=%lu :: mxq_load_job_from_group_assigned_to_server: %m", group_id);
return 0;
}
if(res == 1) {
Expand Down
2 changes: 1 addition & 1 deletion mxq_job.h
Expand Up @@ -105,7 +105,7 @@ int mxq_set_job_status_running(struct mx_mysql *mysql, struct mxq_job *job);
int mxq_set_job_status_exited(struct mx_mysql *mysql, struct mxq_job *job);
int mxq_set_job_status_unknown_for_server(struct mx_mysql *mysql, char *hostname, char *server_id);
int mxq_job_set_tmpfilenames(struct mxq_group *g, struct mxq_job *j);
int mxq_load_job_assigned_to_server(struct mx_mysql *mysql, struct mxq_job **mxq_jobs, char *hostname, char *server_id);
int mxq_load_job_from_group_assigned_to_server(struct mx_mysql *mysql, struct mxq_job **mxq_jobs, uint64_t group_id, char *hostname, char *server_id);
int mxq_load_job_from_group_for_server(struct mx_mysql *mysql, struct mxq_job *mxqjob, uint64_t group_id, char *hostname, char *server_id, char *host_id);

#endif

0 comments on commit 2200fd6

Please sign in to comment.