Skip to content
Snippets Groups Projects
Commit 6e9fb492 authored by Danny Auble's avatar Danny Auble
Browse files
parent 541baf0b
No related branches found
No related tags found
No related merge requests found
...@@ -92,6 +92,12 @@ documents those changes that are of interest to users and admins. ...@@ -92,6 +92,12 @@ documents those changes that are of interest to users and admins.
priority/multifactor, the slurmctld will not core dump on processing usage. priority/multifactor, the slurmctld will not core dump on processing usage.
-- QOS will not be reset to the default when added back a previously deleted -- QOS will not be reset to the default when added back a previously deleted
association. association.
-- Do not set a job's virtual memory limit based upon the job's specified
memory limit (which should be a real memory limit, not virtual).
-- Strip single and double quotes out of a node's reason string to avoid
confusing Moab.
-- BLUEGENE - fix for sinfo/sview for displaying proper node count for nodes
in draining state.
* Changes in SLURM 2.0.3 * Changes in SLURM 2.0.3
======================== ========================
......
...@@ -290,8 +290,16 @@ static char * _dump_node(struct node_record *node_ptr, hostlist_t hl, ...@@ -290,8 +290,16 @@ static char * _dump_node(struct node_record *node_ptr, hostlist_t hl,
snprintf(tmp, sizeof(tmp), ":STATE=%s;", _get_node_state(node_ptr)); snprintf(tmp, sizeof(tmp), ":STATE=%s;", _get_node_state(node_ptr));
xstrcat(buf, tmp); xstrcat(buf, tmp);
if (node_ptr->reason) { if (node_ptr->reason) {
snprintf(tmp, sizeof(tmp), "CAT=\"%s\";", node_ptr->reason); /* Strip out any quotes, they confuse Moab */
char *reason, *bad_char;
reason = xstrdup(node_ptr->reason);
while ((bad_char = strchr(node_ptr->reason, '\'')))
bad_char[0] = ' ';
while ((bad_char = strchr(node_ptr->reason, '\"')))
bad_char[0] = ' ';
snprintf(tmp, sizeof(tmp), "CAT=\"%s\";", reason);
xstrcat(buf, tmp); xstrcat(buf, tmp);
xfree(reason);
} }
if (update_time > last_node_update) if (update_time > last_node_update)
......
...@@ -87,28 +87,13 @@ int set_user_limits(slurmd_job_t *job) ...@@ -87,28 +87,13 @@ int set_user_limits(slurmd_job_t *job)
* handle job limit (for all spawned processes) in slurmd */ * handle job limit (for all spawned processes) in slurmd */
task_mem_bytes = job->job_mem; /* MB */ task_mem_bytes = job->job_mem; /* MB */
task_mem_bytes *= (1024 * 1024); task_mem_bytes *= (1024 * 1024);
#ifdef RLIMIT_AS
if ((task_mem_bytes) && (getrlimit(RLIMIT_AS, &r) == 0) &&
(r.rlim_max > task_mem_bytes)) {
r.rlim_max = r.rlim_cur = task_mem_bytes;
if (setrlimit(RLIMIT_AS, &r)) {
/* Indicates that limit has already been exceeded */
fatal("setrlimit(RLIMIT_AS, %u MB): %m", job->job_mem);
} else
info("Set task_mem(%u MB)", job->job_mem);
#if 0
getrlimit(RLIMIT_AS, &r);
info("task memory limits: %u %u", r.rlim_cur, r.rlim_max);
#endif
}
#endif
#ifdef RLIMIT_DATA #ifdef RLIMIT_DATA
if ((task_mem_bytes) && (getrlimit(RLIMIT_DATA, &r) == 0) && if ((task_mem_bytes) && (getrlimit(RLIMIT_DATA, &r) == 0) &&
(r.rlim_max > task_mem_bytes)) { (r.rlim_max > task_mem_bytes)) {
r.rlim_max = r.rlim_cur = task_mem_bytes; r.rlim_max = r.rlim_cur = task_mem_bytes;
if (setrlimit(RLIMIT_DATA, &r)) { if (setrlimit(RLIMIT_DATA, &r)) {
/* Indicates that limit has already been exceeded */ /* Indicates that limit has already been exceeded */
fatal("setrlimit(RLIMIT_DATA, %u MB): %m", job->job_mem); fatal("setrlimit(RLIMIT_DATA, %u MB): %m",job->job_mem);
} else } else
info("Set task_data(%u MB)", job->job_mem); info("Set task_data(%u MB)", job->job_mem);
#if 0 #if 0
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment