From 8cbece81c110d55ca04894c5c5753717091c7ab4 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Wed, 30 Apr 2008 21:00:47 +0000
Subject: [PATCH] svn merge -r13949:13958
 https://eris.llnl.gov/svn/slurm/branches/slurm-1.2

---
 NEWS                          |  1 +
 src/plugins/sched/wiki/msg.c  |  6 ++++--
 src/plugins/sched/wiki2/msg.c |  6 ++++--
 src/slurmd/slurmstepd/mgr.c   |  2 +-
 src/slurmd/slurmstepd/req.c   | 16 ++++++++++++++++
 5 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/NEWS b/NEWS
index ccec1f805c7..e453ceb90f0 100644
--- a/NEWS
+++ b/NEWS
@@ -270,6 +270,7 @@ documents those changes that are of interest to users and admins.
  -- If job prolog or epilog fail, log the program's exit code.
  -- In jobacct/gold map job names containing any non-alphanumeric characters 
     to '_' to avoid MySQL parsing problems.
+ -- In jobacct/linux correct parsing if command name contains spaces.
 
 * Changes in SLURM 1.2.28
 =========================
diff --git a/src/plugins/sched/wiki/msg.c b/src/plugins/sched/wiki/msg.c
index 49367598416..060a0841567 100644
--- a/src/plugins/sched/wiki/msg.c
+++ b/src/plugins/sched/wiki/msg.c
@@ -178,8 +178,10 @@ static void *_msg_thread(void *no_data)
 		err_code = 0;
 		err_msg = "";
 		msg = _recv_msg(new_fd);
-		_proc_msg(new_fd, msg);
-		xfree(msg);
+		if (msg) {
+			_proc_msg(new_fd, msg);
+			xfree(msg);
+		}
 		slurm_close_accepted_conn(new_fd);
 	}
 	if (sock_fd > 0)
diff --git a/src/plugins/sched/wiki2/msg.c b/src/plugins/sched/wiki2/msg.c
index f005b24b0ed..527fc7547ec 100644
--- a/src/plugins/sched/wiki2/msg.c
+++ b/src/plugins/sched/wiki2/msg.c
@@ -181,8 +181,10 @@ static void *_msg_thread(void *no_data)
 		err_code = 0;
 		err_msg = "";
 		msg = _recv_msg(new_fd);
-		_proc_msg(new_fd, msg);
-		xfree(msg);
+		if (msg) {
+			_proc_msg(new_fd, msg);
+			xfree(msg);
+		}
 		slurm_close_accepted_conn(new_fd);
 	}
 	verbose("wiki: message engine shutdown");
diff --git a/src/slurmd/slurmstepd/mgr.c b/src/slurmd/slurmstepd/mgr.c
index 6b640ac4c3f..8ff74d15351 100644
--- a/src/slurmd/slurmstepd/mgr.c
+++ b/src/slurmd/slurmstepd/mgr.c
@@ -980,7 +980,7 @@ _fork_all_tasks(slurmd_job_t *job)
 
                 if (slurm_container_add(job, job->task[i]->pid)
 		    == SLURM_ERROR) {
-                        error("slurm_container_create: %m");
+                        error("slurm_container_add: %m");
 			goto fail1;
                 }
 		jobacct_id.nodeid = job->nodeid;
diff --git a/src/slurmd/slurmstepd/req.c b/src/slurmd/slurmstepd/req.c
index 117b0099457..a9e5976b305 100644
--- a/src/slurmd/slurmstepd/req.c
+++ b/src/slurmd/slurmstepd/req.c
@@ -1032,6 +1032,14 @@ _handle_suspend(int fd, slurmd_job_t *job, uid_t uid)
 		goto done;
 	}
 
+	if (cont_id == 0) {
+		debug ("step %u.%u invalid container [cont_id:%u]",
+			job->jobid, job->stepid, job->cont_id);
+		rc = -1;
+		errnum = ESLURMD_JOB_NOTRUNNING;
+		goto done;
+	}
+
 	jobacct_gather_g_suspend_poll();
 
 	/*
@@ -1089,6 +1097,14 @@ _handle_resume(int fd, slurmd_job_t *job, uid_t uid)
 		goto done;
 	}
 
+	if (job->cont_id == 0) {
+		debug ("step %u.%u invalid container [cont_id:%u]",
+			job->jobid, job->stepid, job->cont_id);
+		rc = -1;
+		errnum = ESLURMD_JOB_NOTRUNNING;
+		goto done;
+	}
+
 	jobacct_gather_g_resume_poll();
 	/*
 	 * Signal the container
-- 
GitLab