From bb532af47c355d9cc6910ef22b2867d353344d99 Mon Sep 17 00:00:00 2001 From: Marius Tolzmann Date: Thu, 23 Jul 2015 17:08:05 +0200 Subject: [PATCH] mxq_job: Jobs with job_status loaded are now counted as running jobs --- mxq_job.c | 2 +- mysql/create_tables | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/mxq_job.c b/mxq_job.c index 354d574..9e2415a 100644 --- a/mxq_job.c +++ b/mxq_job.c @@ -472,7 +472,7 @@ int mxq_set_job_status_exited(struct mx_mysql *mysql, struct mxq_job *job) " stats_nvcsw = ?, " " stats_nivcsw = ?" " WHERE job_id = ?" - " AND job_status = " status_str(MXQ_JOB_STATUS_RUNNING) + " AND job_status IN (" status_str(MXQ_JOB_STATUS_LOADED) ", " status_str(MXQ_JOB_STATUS_RUNNING) ")" " AND host_hostname = ?" " AND server_id = ?" " AND host_pid = ?"; diff --git a/mysql/create_tables b/mysql/create_tables index 722a2c6..b74e5a2 100644 --- a/mysql/create_tables +++ b/mysql/create_tables @@ -171,14 +171,19 @@ DROP TRIGGER mxq_update_job| CREATE TRIGGER mxq_update_job BEFORE UPDATE ON mxq_job FOR EACH ROW BEGIN IF NEW.job_status != OLD.job_status THEN - IF NEW.job_status = 200 AND OLD.job_status IN (0, 100, 150) THEN + IF NEW.job_status IN (150, 200) AND OLD.job_status IN (0, 100) THEN UPDATE mxq_group SET group_jobs_inq=group_jobs_inq-1, group_jobs_running=group_jobs_running+1, group_slots_running=group_slots_running+NEW.host_slots, group_mtime=NULL WHERE group_id=NEW.group_id; - ELSEIF NEW.job_status IN (400, 750) AND OLD.job_status IN (200, 250, 300, 350) THEN + ELSEIF NEW.job_status = 200 AND OLD.job_status = 150 THEN + UPDATE mxq_group SET + group_slots_running=group_slots_running-OLD.host_slots+NEW.host_slots, + group_mtime=NULL + WHERE group_id=NEW.group_id; + ELSEIF NEW.job_status IN (400, 750) AND OLD.job_status IN (150, 200, 250, 300, 350) THEN UPDATE mxq_group SET group_slots_running=group_slots_running-NEW.host_slots, group_jobs_running=group_jobs_running-1, @@ -195,7 +200,7 @@ CREATE TRIGGER mxq_update_job BEFORE UPDATE ON mxq_job group_jobs_cancelled=group_jobs_cancelled+1, group_mtime=NULL WHERE group_id=NEW.group_id; - ELSEIF NEW.job_status = 999 AND OLD.job_status IN (200, 250) THEN + ELSEIF NEW.job_status = 999 AND OLD.job_status IN (150, 200, 250) THEN UPDATE mxq_group SET group_slots_running=group_slots_running-NEW.host_slots, group_jobs_running=group_jobs_running-1, @@ -209,7 +214,7 @@ CREATE TRIGGER mxq_update_job BEFORE UPDATE ON mxq_job group_jobs_unknown=group_jobs_unknown+1, group_mtime=NULL WHERE group_id=NEW.group_id; - ELSEIF NEW.job_status = 1000 AND OLD.job_status IN (200, 250, 300, 350) THEN + ELSEIF NEW.job_status = 1000 AND OLD.job_status IN (150, 200, 250, 300, 350) THEN UPDATE mxq_group SET group_slots_running=group_slots_running-NEW.host_slots, group_jobs_running=group_jobs_running-1,