Skip to content

Commit

Permalink
Merge branch 'fixes' into mpi
Browse files Browse the repository at this point in the history
* fixes:
  mxqd: Do not overwrite status WAITING
  mxqd: Return cpuset if we failed to fork user
  mxq_job: Rename function mxq_set_job_status_loaded
  mxq_job: Remove redundant WHERE conditions
  mx_mysql: Remove debug message
  mxq_job: Reset all columns when job is unassigned
  sql: Avoid time running backwards
  • Loading branch information
donald committed Jun 13, 2017
2 parents 77da1b6 + 6a9d0a4 commit f81de02
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 12 deletions.
2 changes: 0 additions & 2 deletions mx_mysql.c
Original file line number Diff line number Diff line change
Expand Up @@ -1398,8 +1398,6 @@ int mx_mysql_do_statement_retry_on_fail(struct mx_mysql *mysql, char *query, str
{
int res;

mx_log_debug("entered");

while (1) {
res = mx_mysql_do_statement_no_bind_cleanup(mysql, query, param, result, from, to, size);

Expand Down
15 changes: 7 additions & 8 deletions mxq_job.c
Original file line number Diff line number Diff line change
Expand Up @@ -362,11 +362,7 @@ int mxq_assign_job_from_group_to_daemon(struct mx_mysql *mysql, uint64_t group_i
" server_id = ?,"
" job_status = " status_str(MXQ_JOB_STATUS_ASSIGNED)
" WHERE job_id = ?"
" AND job_status = " status_str(MXQ_JOB_STATUS_INQ)
" AND daemon_id = 0"
" AND host_hostname = ''"
" AND server_id = ''"
" AND host_pid = 0";
" AND job_status = " status_str(MXQ_JOB_STATUS_INQ);

job_id=mxq_select_job_from_group(mysql,group_id);
if (!job_id) {
Expand Down Expand Up @@ -410,7 +406,10 @@ int mxq_unassign_jobs_of_server(struct mx_mysql *mysql, struct mxq_daemon *daemo
"UPDATE"
" mxq_job"
" SET"
" daemon_id = 0,"
" daemon_id = 0,"
" host_hostname = '',"
" host_slots = 0,"
" server_id = '',"
" job_status = " status_str(MXQ_JOB_STATUS_INQ)
" WHERE job_status = " status_str(MXQ_JOB_STATUS_ASSIGNED)
" AND host_pid = 0"
Expand All @@ -435,7 +434,7 @@ int mxq_unassign_jobs_of_server(struct mx_mysql *mysql, struct mxq_daemon *daemo
return res;
}

int mxq_set_job_status_loaded(struct mx_mysql *mysql, struct mxq_job *job)
int mxq_set_job_status_loaded_on_server(struct mx_mysql *mysql, struct mxq_job *job)
{
struct mx_mysql_bind param = {0};
char *host_id;
Expand Down Expand Up @@ -762,7 +761,7 @@ int mxq_load_job_from_group_for_daemon(struct mx_mysql *mysql, struct mxq_job *j
}
} while (1);

res = mxq_set_job_status_loaded(mysql, job);
res = mxq_set_job_status_loaded_on_server(mysql, job);
if (res < 0) {
mx_log_err(" group_id=%lu job_id=%lu :: mxq_set_job_status_loaded_on_server(): %m", group_id, job->job_id);
return 0;
Expand Down
5 changes: 4 additions & 1 deletion mxqd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1192,6 +1192,7 @@ unsigned long start_job(struct mxq_group_list *glist)
pid = fork();
if (pid < 0) {
mx_log_err("fork: %m");
cpuset_clear_running(&job->host_cpu_set,&server->cpu_set_available);
return 0;
} else if (pid == 0) {
job->host_pid = getpid();
Expand Down Expand Up @@ -2454,8 +2455,10 @@ int main(int argc, char *argv[])
slots_started = start_user_with_least_running_global_slot_count(server);
if (slots_started == -1) {
mxq_daemon_set_status(server->mysql, daemon, MXQ_DAEMON_STATUS_WAITING);
mx_log_debug("no slots_started => we have users waiting for free slots.");
mx_log_info("no slots_started => we have users waiting for free slots. Sleeping (3 seconds).");
sleep(3);
slots_started = 0;
continue;
} else if (slots_started) {
mx_log_info("slots_started=%lu :: Main Loop started %lu slots.", slots_started, slots_started);
}
Expand Down
2 changes: 1 addition & 1 deletion mysql/create_trigger.sql
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ CREATE TRIGGER mxq_add_group BEFORE INSERT ON mxq_group
DROP TRIGGER IF EXISTS mxq_update_group|
CREATE TRIGGER mxq_update_group BEFORE UPDATE ON mxq_group
FOR EACH ROW BEGIN
SET NEW.group_mtime = NOW();
SET NEW.group_mtime = GREATEST(OLD.group_mtime, NOW());

IF OLD.group_jobs_inq > 0 AND OLD.group_jobs_running = 0 THEN
SET NEW.stats_wait_sec = OLD.stats_wait_sec + (UNIX_TIMESTAMP(NEW.group_mtime) - UNIX_TIMESTAMP(OLD.group_mtime));
Expand Down

0 comments on commit f81de02

Please sign in to comment.