Newer
Older
This file describes changes in recent versions of SLURM. It primarily
documents those changes that are of interest to users and admins.
* Changes in SLURM 2.3.0.pre3
=============================
-- BGQ - Initial port added, very limited functionality.
-- Minor typos fixed
-- Various bug fixes for Cray systems.
-- Fix bug that when setting a compute node to idle state, it was failing to
set the systems up_node_bitmap.
-- BLUEGENE - code reorder
* Changes in SLURM 2.3.0.pre2
=============================
-- Log a job's requeue or cancellation due to preemption to that job's stderr:
"*** JOB 65547 CANCELLED AT 2011-01-21T12:59:33 DUE TO PREEMPTION ***".
-- Added new job termination state of JOB_PREEMPTED, "PR" or "PREEMPTED" to
indicate job termination was due to preemption.
-- Optimize advanced reservations resource selection for computer topology.
The logic has been added to select/linear and select/cons_res, but will
not be enabled until the other select plugins are modified.
-- Disable deletion of partitions that have unfinished jobs (pending,
running or suspended states). Patch from Martin Perry, BULL.
-- In sview, disable the sorting of node records by name at startup for
clusters over 1000 nodes. Users can enable this by selecting the "Name"
tab. This change dramatically improves scalability of sview.
-- Report error when trying to change a node's state from scontrol for Cray
-- Do not attempt to read the batch script for non-batch jobs. This patch
eliminates some inappropriate error messages.
-- Preserve NodeHostName when reordering nodes due to system topology.
-- On Cray/ALPS systems do node inventory before scheduling jobs.
-- Disable some salloc options on Cray systems.
-- Disable scontrol's wait_job command on Cray systems.
-- Disable srun command on native Cray/ALPS systems.

Danny Auble
committed
-- Updated configure option "--enable-cray-emulation" (still under
development) to emulate a cray XT/XE system, and auto-detect a real
Cray XT/XE systems (removed no longer needed --enable-cray configure
option). Building on native Cray systems requires the
cray-MySQL-devel-enterprise rpm and expat XML parser library/headers.
* Changes in SLURM 2.3.0.pre1
=============================
-- Added that when a slurmctld closes the connection to the database it's
registered host and port are removed.
-- Added flag to slurmdbd.conf TrackSlurmctldDown where if set will mark idle
resources as down on a cluster when a slurmctld disconnects or is no
longer reachable.
-- Added support for more than one front-end node to run slurmd on
architectures where the slurmd does not execute on the compute nodes
(e.g. BlueGene). New configuration parameters FrontendNode and FrontendAddr
added. See "man slurm.conf" for more information.
-- With the scontrol show job command when using the --details option, show
a batch job's script.
-- Add ability to create reservations or partitions and submit batch jobs
using sview. Also add the ability to delete reservations and partitions.
-- Added new configuration parameter MaxJobId. Once reached, restart job ID
values at FirstJobId.
-- When restarting slurmctld with priority/basic, increment all job priorities
so the highest job priority becomes TOP_PRIORITY.
* Changes in SLURM 2.2.3
========================
-- Update srun, salloc, and sbatch man page description of --distribution
option. Patches from Rod Schulz, Bull.
* Changes in SLURM 2.2.2
========================
-- Correct logic to set correct job hold state (admin or user) when setting
the job's priority using scontrol's "update jobid=..." rather than its
"hold" or "holdu" commands.
-- Modify squeue to report unset --mincores, --minthreads or --extra-node-info
values as "*" rather than 65534. Patch from Rod Schulz, BULL.
-- Report the StartTime of a job as "Unknown" rather than the year 2106 if its
expected start time was too far in the future for the backfill scheduler
to compute.
-- Prevent a pending job reason field from inappropriately being set to
"Priority".
-- In sched/backfill with jobs having QOS_FLAG_NO_RESERVE set, then don't
consider the job's time limit when attempting to backfill schedule. The job
will just be preempted as needed at any time.
-- Eliminated a bug in sbatch when no valid target clusters are specified.
-- When explicitly sending a signal to a job with the scancel command and that
job is in a pending state, then send the request directly to the slurmctld
daemon and do not attempt to send the request to slurmd daemons, which are
not running the job anyway.
-- In slurmctld, properly set the up_node_bitmap when setting it's state to
IDLE (in case the previous node state was DOWN).

Danny Auble
committed
-- Fix smap to process block midplane names correctly when on a bluegene
system.
-- Fix smap to once again print out the Letter 'ID' for each line of a block/
partition view.
-- Corrected the NOTES section of the scancel man page

Danny Auble
committed
-- Fix for accounting_storage/mysql plugin to correctly query cluster based
transactions.
-- Fix issue when updating database for clusters that were previously deleted
before upgrade to 2.2 database.
-- BLUEGENE - Handle mesh torus check better in dynamic mode.

Danny Auble
committed
-- BLUEGENE - Fixed race condition when freeing block, most likely only would
happen in emulation.
-- Fix for calculating used QOS limits correctly on a slurmctld reconfig.
-- BLUEGENE - Fix for bad conn-type set when running small blocks in HTC mode.
-- If salloc's --no-shell option is used, then do not attempt to preserve the
terminal's state.

Moe Jette
committed
-- Add new SLURM configure time parameter of --disable-salloc-background. If
set, then salloc can only execute in the foreground. If started in the
background, then a message will be printed and the job allocation halted
until brought into the foreground.
NOTE: THIS IS A CHANGE IN DEFAULT SALLOC BEHAVIOR FROM V2.2.1, BUT IS
CONSISTENT WITH V2.1 AND EARLIER.
-- Added the Multi-Cluster Operation web page.
-- Removed remnant code for enforcing max sockets/cores/threads in the
cons_res plugin (see last item in 2.1.0-pre5). This was responsible
for a bug reported by Rod Schultz.

Danny Auble
committed
-- BLUEGENE - Set correct env vars for HTC mode on a P system to get correct
block.
-- Correct RunTime reported by "scontrol show job" for pending jobs.

Danny Auble
committed
* Changes in SLURM 2.2.1
========================
-- Fix setting derived exit code correctly for jobs that happen to have the
same jobid.
-- Better checking for time overflow when rolling up in accounting.
-- Add scancel --reservation option to cancel all jobs associated with a
specific reservation.
-- Treat reservation with no nodes like one that starts later (let jobs of any
size get queued and do not block any pending jobs).
-- Fix bug in gang scheduling logic that would temporarily resume to many jobs
after a job completed.
-- Change srun message about job step being deferred due to SlurmctldProlog
running to be more clear and only print when --verbose option is used.

Danny Auble
committed
-- Made it so you could remove the hold on jobs with sview by setting the
priority to infinite.
-- BLUEGENE - better checking small blocks in dynamic mode whether a full
midplane job could run or not.
-- Decrease the maximum sleep time between srun job step creation retry
attempts from 60 seconds to 29 seconds. This should eliminate a possible
synchronization problem with gang scheduling that could result in job

Danny Auble
committed
step creation requests only occuring when a job is suspended.
-- Fix to prevent changing a held job's state from HELD to DEPENDENCY
until the job is released. Patch from Rod Schultz, Bull.
-- Fixed sprio -M to reflect PriorityWeight values from remote cluster.
-- Fix bug in sview when trying to update arbitrary field on more than one
job. Formerly would display information about one job, but update next
selected job.

Danny Auble
committed
-- Made it so QOS with UsageFactor set to 0 would make it so jobs running
under that QOS wouldn't add time to fairshare or association/qos
limits.

Danny Auble
committed
-- Fixed issue where QOS priority wasn't re-normalized until a slurmctld
restart when a QOS priority was changed.

Danny Auble
committed
-- Fix sprio to use calculated numbers from slurmctld instead of
calulating it own numbers.

Danny Auble
committed
-- BLUEGENE - fixed race condition with preemption where if the wind blows the
right way the slurmctld could lock up when preempting jobs to run others.

Danny Auble
committed
-- BLUEGENE - fixed epilog to wait until MMCS job is totally complete before
finishing.
-- BLUEGENE - more robust checking for states when freeing blocks.
-- Added correct files to the slurm.spec file for correct perl api rpm
creation.
-- Added flag "NoReserve" to a QOS to make it so all jobs are created equal
within a QOS. So if larger, higher priority jobs are unable to run they
don't prevent smaller jobs from running even if running the smaller
jobs delay the start of the larger, higher priority jobs.

Danny Auble
committed
-- BLUEGENE - Check preemptees one by one to preempt lower priority jobs first
instead of first fit.
-- In select/cons_res, correct handling of the option
SelectTypeParameters=CR_ONE_TASK_PER_CORE.

Danny Auble
committed
-- Fix for checking QOS to override partition limits, previously if not using
QOS some limits would be overlooked.
-- Fix bug which would terminate a job step if any of the nodes allocated to
it were removed from the job's allocation. Now only the tasks on those
nodes are terminated.
-- Fixed issue when using a storage_accounting plugin directly without the
slurmDBD updates weren't always sent correctly to the slurmctld, appears to
OS dependent, reported by Fredrik Tegenfeldt.

Danny Auble
committed
* Changes in SLURM 2.2.0
========================
-- Change format of Duration field in "scontrol show reservation" output from
an integer number of minutes to "[days-]hours:minutes:seconds".
-- Add support for changing the reservation of pending or running jobs.
-- On Cray systems only, salloc sends SIGKILL to spawned process group when
job allocation is revoked. Patch from Gerrit Renker, CSCS.

Danny Auble
committed
-- Fix for sacctmgr to work correctly when modifying user associations where
all the associations contain a partition.
-- Minor mods to salloc signal handling logic: forwards more signals and
releases allocation on real-time signals. Patch from Gerrit Renker, CSCS.
-- Add salloc logic to preserve tty attributes after abnormal exit. Patch
from Mark Grondona, LLNL.
-- BLUEGENE - Fix for issue in dynamic mode when trying to create a block
overlapping a block with no job running on it but in configuring state.
-- BLUEGENE - Speedup by skipping blocks that are deallocating for other jobs
when starting overlapping jobs in dynamic mode.
-- Fix for sacct --state to work correctly when not specifying a start time.
-- Fix upgrade process in accounting from 2.1 for clusters named "cluster".
-- Export more jobacct_common symbols needed for the slurm api on some systems.
* Changes in SLURM 2.2.0.rc4
============================
-- Correction in logic to spread out over time highly parallel messages to
minimize lost messages. Effects slurmd epilog complete messages and PMI
key-pair transmissions. Patch from Gerrit Renker, CSCS.
-- Fixed issue where if a system has unset messages to the dbd in 2.1 and
upgrades to 2.2. Messages are now processed correctly now.
-- Fixed issue where assoc_mgr cache wasn't always loaded correctly if the
slurmdbd wasn't running when the slurmctld was started.

Danny Auble
committed
-- Make sure on a pthread create in step launch that the error code is looked
at. Improves fault-tolerance of slurmd.
-- Fix setting up default acct/wckey when upgrading from 2.1 to 2.2.
-- Fix issue with associations attached to a specific partition with no other
association, and requesting a different partition.
-- Added perlapi to the slurmdb to the slurm.spec.
-- In sched/backfill, correct handling of CompleteWait parameter to avoid
backfill scheduling while a job is completing. Patch from Gerrit Renker,
CSCS.
-- Send message back to user when trying to launch job on computing lacking
that user ID. Patch from Hongjia Cao, NUDT.
-- BLUEGENE - Fix it so 1 midplane clusters will run small block jobs.
-- Add Command and WorkDir to the output of "scontrol show job" for job
allocations created using srun (not just sbatch).
-- Fixed sacctmgr to not add blank defaultqos' when doing a cluster dump.
-- Correct processing of memory and disk space specifications in the salloc,
sbatch, and srun commands to work properly with a suffix of "MB", "GB",
etc. and not only with a single letter (e.g. "M", "G", etc.).
-- Prevent nodes with suspended jobs from being powered down by SLURM.
-- Normalized the way pidfile are created by the slurm daemons.

Danny Auble
committed
-- Fixed modifying the root association to no read in it's last value
when clearing a limit being set.
-- Revert some resent signal handling logic from salloc so that SIGHUP sent
after the job allocation will properly release the allocation and cause
salloc to exit.
-- BLUEGENE - Fix for recreating a block in a ready state.
-- Fix debug flags for incorrect logic when dealing with DEBUG_FLAG_WIKI.
-- Report reservation's Nodes as a hostlist expression of all nodes rather
than using "ALL".
-- Fix reporting of nodes in BlueGene reservation (was reporting CPU count
rather than cnode count in scontrol output for NodeCnt field).
* Changes in SLURM 2.2.0.rc3
============================
-- Modify sacctmgr command to accept plural versions of options (e.g. "Users"
in addition to "User"). Patch from Don Albert, BULL.

Danny Auble
committed
-- BLUEGENE - make it so reset of boot counter happens only on state change
and not when a new job comes along.
-- Modify srun and salloc signal handling so they can be interrupted while
waiting for an allocation. This was broken in version 2.2.0.rc2.
-- Fix NULL pointer reference in sview. Patch from Gerrit Renker, CSCS.
-- Fix file descriptor leak in slurmstepd on spank_task_post_fork() failure.
Patch from Gerrit Renker, CSCS.
-- Fix bug in preserving job state information when upgrading from SLURM
version 2.1. Bug introduced in version 2.2.0-pre10. Patch from Par
Andersson, NSC.

Danny Auble
committed
-- Fix bug where if using the slurmdbd if a job wasn't able to start right
away some accounting information may be lost.

Danny Auble
committed
-- BLUEGENE - when a prolog failure happens the offending block is put in
an error state.
-- Changed the last column heading of the sshare output from "FS Usage" to
"FairShare" and added more detail to the sshare man page.
-- Fix bug in enforcement of reservation by account name. Used wrong index
into an array. Patch from Gerrit Renker, CSCS.
-- Modify job_submit/lua plugin to treat any non-zero return code from the
job_submit and job_modify functions as an error and the user request should
-- Fix bug which would permit pending job to be started on completing node
when job preemption is configured.
* Changes in SLURM 2.2.0.rc2
============================
-- Fix memory leak in job step allocation logic. Patch from Hongjia Cao, NUDT.
-- If a preempted job was submitted with the --no-requeue option then cancel
rather than requeue it.

Danny Auble
committed
-- Fix for problems when adding a user for the first time to a new cluster
with a 2.1 sacctmgr without specifying a default account.
-- Resend TERMINATE_JOB message only to nodes that the job still has not
terminated on. Patch from Hongjia Cao, NUDT.
-- Treat time limit specification of "0:300" as a request for 300 seconds
(5 minutes) instead of one minute.
-- Modify sched/backfill plugin logic to continue working its way down the
queue of jobs rather than restarting at the top if there are no changes in
job, node, or partition state between runs. Patch from Hongjia Cao, NUDT.
-- Improve scalability of select/cons_res logic. Patch from Matthieu Hautreux,
CEA.

Danny Auble
committed
-- Fix for possible deadlock in the slurmstepd when cancelling a job that is
also writing a large amount of data to stderr.
-- Fix in select/cons_res to eliminate "mem underflow" error when the
slurmctld is reconfigured while a job is in completing state.
-- Send a message to the a user's job when it's real or virual memory limit
is exceeded. :

Danny Auble
committed
-- Apply rlimits right before execing the users task so to lower the risk of
the task exiting because the slurmstepd ran over a limit (log file size,
etc.)
-- Add scontrol command of "uhold <job_id>" so that an administrator can hold
a job and let the job's owner release it. The scontrol command of
"hold <job_id>" when executed by a SLURM administrator can only be released
by a SLURM administrator and not the job owner.
-- Change atoi to slurm_atoul in mysql plugin, needed for running on 32-bit
systems in some cases.
-- If a batch job is found to be missing from a node, make its termination
state be NODE_FAIL rather than CANCELLED.

Danny Auble
committed
-- Fatal error put back if running a bluegene or cray plugin from a controller
not of that type.

Danny Auble
committed
-- Make sure jobacct_gather plugin is not shutdown before messing with the
proccess list.

Moe Jette
committed
-- Modify signal handling in srun and salloc commands to avoid deadlock if the
malloc function is interupted and called again. The malloc function is
thread safe, but not reentrant, which is a problem when signal handling if

Moe Jette
committed
the malloc function itself has a lock. Problem fixed by moving signal
handling in those commands to a new pthread.
-- In srun set job abort flag on completion to handle the case when a user
cancels a job while the node is not responding but slurmctld has not yet
the node down. Patch from Hongjia Cao, NUDT.
-- Streamline the PMI logic if no duplicate keys are included in the key-pairs
managed. Substantially improves performance for large numbers of tasks.
Adds support for SLURM_PMI_KVS_NO_DUP_KEYS environment variable. Patch
from Hongjia Cao, NUDT.

Danny Auble
committed
-- Fix issues with sview dealing with older versions of sview and saving
defaults.
-- Remove references to --mincores, --minsockets, and --minthreads from the
salloc, sbatch and srun man pages. These options are defunct, Patch from
Rod Schultz, Bull.

Danny Auble
committed
-- Made openssl not be required to build RPMs, it is not required anymore
since munge is the default crypto plugin.

Danny Auble
committed
-- sacctmgr now has smarts to figure out if a qos is a default qos when
modifing a user/acct or removing a qos.
-- For reservations on BlueGene systems, set and report c-node counts rather
than midplane counts.
* Changes in SLURM 2.2.0.rc1
============================
-- Add show_flags parameter to the slurm_load_block_info() function.
-- perlapi has been brought up to speed courtesy of Hongjia Coa. (make sure to
run 'make clean' if building in a different dir than source)
-- Fixed regression in pre12 in crypto/munge when running with
--enable-multiple-slurmd which would cause the slurmd's to core.
-- Fixed regression where cpu count wasn't figured out correctly for steps.
-- Fixed issue when using old mysql that can't handle a '.' in the table
name.
-- Mysql plugin works correctly without the SlurmDBD

Danny Auble
committed
-- Added ability to query batch step with sstat. Currently no accounting data
is stored for the batch step, but the internals are inplace if we decide to
do that in the future.
-- Fixed some backwards compatibility issues with 2.2 talking to 2.1.

Danny Auble
committed
-- Fixed regression where modifying associations didn't get sent to the
slurmctld.
-- Made sshare sort things the same way saccmgr list assoc does
(alphabetically)
-- Fixed issue with default accounts being set up correctly.

Danny Auble
committed
-- Changed sortting in the slurmctld so sshare output is similar to that of
sacctmgr list assoc.
-- Modify reservation logic so that daily and weekly reservations maintain
the same time when daylight savings time starts or ends in the interim.
-- Edit to make reservations handle updates to associations.
-- Added the derived exit code to the slurmctld job record and the derived
exit code and string to the job record in the SLURM db.
-- Added slurm-sjobexit RPM for SLURM job exit code management tools.
-- Added ability to use sstat/sacct against the batch step.
-- Added OnlyDefaults option to sacctmgr list associations.
-- Modified the fairshare priority formula to F = 2**(-Ue/S)
-- Modify the PMI functions key-pair exchange function to support a 32-bit
counter for larger job sizes. Patch from Hongjia Cao, NUDT.
-- In sched/builtin - Make the estimated job start time logic faster (borrowed
new logic from sched/backfill and added pthread) and more accurate.
-- In select/cons_res fix bug that could result in a job being allocated zero
CPUs on some nodes. Patch from Hongjia Cao, NUDT.
-- Fix bug in sched/backfill that could set expected start time of a job too
far in the future.

Danny Auble
committed
-- Added ability to enforce new limits given to associations/qos on
pending jobs.
-- Increase max message size for the slurmdbd from 1000000 to 16*1024*1024
-- Increase number of active threads in the slurmdbd from 50 to 100
-- Fixed small bug in src/common/slurmdb_defs.c reported by Bjorn-Helge Mevik
-- Fixed sacctmgr's ability to query associations against qos again.
-- Fixed sview show config on non-bluegene systems.
-- Fixed bug in selecting jobs based on sacct -N option
-- Fix bug that prevented job Epilog from running more than once on a node if
a job was requeued and started no job steps.
-- Fixed issue where node index wasn't stored correcting when using DBD.
-- Enable srun's use of the --nodes option with --exclusive (previously the
--nodes option was ignored).
-- Added UsageThreshold and Flags to the QOS object.
-- Patch to improve threadsafeness in the mysql plugins.
-- Add support for fair-share scheduling to be based upon resource use at
the level of bank accounts and ignore use of individual users. Patch by
Par Andersson, National Supercomputer Centre, Sweden.
* Changes in SLURM 2.2.0.pre12
==============================
-- Log if Prolog or Epilog run for longer than MessageTimeout / 2.
-- Log the RPC number associated with messages from slurmctld that timeout.
-- Fix bug in select/cons_res logic when job allocation includes --overcommit
and --ntasks-per-node options and the node has fewer CPUs than the count
specified by --ntasks-per-node.
-- Fix bug in gang scheduling and job preemption logic so that preempted jobs
get resumed properly after a slurmctld hot-start.
-- Fix bug in select/linear handling of gang scheduled jobs that could result
in run_job_cnt underflow error message.
-- Fix bug in gang scheduling logic to properly support partitions added
using the scontrol command.
-- Fix a segmentation fault in sview where the 'excluded_partitions' field
was set to NULL, caused by the absence of ~/.slurm/sviewrc.
-- Rewrote some calls to is_user_any_coord() in src/plugins/accounting_storage
modules to make use of is_user_any_coord()'s return value.
-- Add configure option of --with=dimensions=#.
-- Modify srun ping logic so that srun would only be considered not responsive
if three ping messages were not responded to. Patch from Hongjia Cao (NUDT).
-- Preserve a node's ReasonTime field after scontrol reconfig command. Patch
from Hongjia Cao (NUDT).
-- Added the authority for users with AdminLevel's defined in the SLURM db
(Operators and Admins) and account coordinators to invoke commands that
affect jobs, reservations, nodes, etc.
-- Fix for slurmd restart on completing node with no tasks to get the correct
state, completing. Patch from Hongjia Cao (NUDT).
-- Prevent scontrol setting a node's Reason="". Patch from Hongjia Cao (NUDT).
-- Add new functions hostlist_ranged_string_malloc,
hostlist_ranged_string_xmalloc, hostlist_deranged_string_malloc, and
hostlist_deranged_string_xmalloc which will allocate memory as needed.
-- Make the slurm commands support both the --cluster and --clusters option.
Previously, some commands support one of those options, but not the other.
-- Fix bug when resizing a job that has steps running on some of those nodes.
Avoid killing the job step on remaining nodes. Patch from Rod Schultz
(BULL). Also fix bug related to tracking the CPUs allocated to job steps
on each node after releasing some nodes from the job's allocation.
-- Applied patch from Rod Schultz / Matthieu Hautreux to keep the Node-to-Host
cache from becoming corrupted when a hostname cannot be resolved.
-- Export more symbols in libslurm for job and node state information
translation (numbers to strings). Patch from Hongia Cao, NUDT.
-- Add logic to retry sending RESPONSE_LAUNCH_TASKS messages from slurmd to
srun. Patch from Hongia Cao, NUDT.
-- Modify bit_unfmt_hexmask() and bit_unfmt_binmask() functions to clear the
bitmap input before setting the bits indicated in the input string.
-- Add SchedulerParameters option of bf_window to control how far into the
future that the backfill scheduler will look when considering jobs to start.
The default value is one day. See "man slurm.conf" for details.
-- Fix bug that can result in duplicate job termination records in accounting
for job termination when slurmctld restarts or reconfigures.
-- Modify plugin and library logic as needed to support use of the function
slurm_job_step_stat() from user commands.
-- Fix race condition in which PrologSlurmctld failure could cause slurmctld
to abort.
-- Fix bug preventing users in secondary user groups from being granted access
to partitions configured with AllowGroups.
-- Added support for a default account and wckey per cluster within accounting.
-- Modified select/cons_res plugin so that if MaxMemPerCPU is configured and a
job specifies it's memory requirement, then more CPUs than requested will
automatically be allocated to a job to honor the MaxMemPerCPU parameter.
-- Added the derived_ec (exit_code) member to job_info_t. exit_code captures
the exit code of the job script (or salloc) while derived_ec contains the
highest exit code of all the job steps.
-- Added SLURM_JOB_EXIT_CODE and SLURM_JOB_DERIVED_EC variables to the
EpilogSlurmctld environment

Danny Auble
committed
-- More work done on the accounting_storage/pgsql plugin, still beta.
Patch from Hongjia Cao (NUDT).
-- Major updates to sview from Dan Rusak (Bull), including:
- Persistent option selections for each tab page
- Clean up topology in grids
- Leverage AllowGroups and Hidden options
- Cascade full-info popups for ease of selection
-- Add locks around the MySQL calls for proper operation if the non-thread
safe version of the MySQL library is used.
-- Remove libslurm.a, libpmi.a and libslurmdb.a from SLURM RPM. These static
libraries are not generally usable.
-- Fixed bug in sacctmgr when zeroing raw usage reported by Gerrit Renker.
* Changes in SLURM 2.2.0.pre11
==============================
-- Permit a regular user to change the partition of a pending job.
-- Major re-write of the job_submit/lua plugin to pass pointers to available
partitions and use lua metatables to reference the job and partition fields.
-- Add support for serveral new trigger types: SlurmDBD failure/restart,
Database failure/restart, Slurmctld failure/restart.
-- Add support for SLURM_CLUSTERS environment variable in the sbatch, sinfo,
squeue commands.
-- Modify the sinfo and squeue commands to report state of multiple clusters
if the --clusters option is used.
-- Added printf __attribute__ qualifiers to info, debug, ... to help prevent
bad/incorrect parameters being sent to them. Original patch from
-- Fix bug in slurmctld job completion logic when nodes allocated to a
completing job are re-booted. Patch from Hongjia Cao (NUDT).
-- In slurmctld's node record data structure, rename "hilbert_integer" to
"node_rank".
-- Add topology/node_rank plugin to sort nodes based upon rank loaded from
BASIL on Cray computers.
-- Fix memory leak in the auth/munge and crypto/munge plugins in the case of
some failure modes.
* Changes in SLURM 2.2.0.pre10
==============================

Danny Auble
committed
-- Fix issue when EnforcePartLimits=yes in slurm.conf all jobs where no nodecnt
was specified the job would be seen to have maxnodes=0 which would not
allow jobs to run.

Danny Auble
committed
-- Fix issue where if not suspending a job the gang scheduler does the correct
kill procedure.

Danny Auble
committed
-- Fixed some issues when dealing with jobs from a 2.1 system so they live
after an upgrade.
-- In srun, log if --cpu_bind options are specified, but not supported by the
current system configuration.

Danny Auble
committed
-- Various Patchs from Hongjia Cao dealing with bugs found in sacctmgr and
the slurmdbd.
-- Fix bug in changing the nodes allocated to a running job and some node
names specified are invalid, avoid invalid memory reference.
-- Fixed filename substitution of %h and %n based on patch from Ralph Bean
-- Added better job sorting logic when preempting jobs with qos.
-- Log the IP address and port number for some communication errors.
-- Fix bug in select/cons_res when --cpus_per_task option is used, could
oversubscribe resources.
-- In srun, do not implicitly set the job's maximum node count based upon a
required hostlist.
-- Avoid running the HealthCheckProgram on non-responding nodes rather than
DOWN nodes.
-- Fix bug in handling of poll() functions on OS X (SLURM was ignoring POLLIN
if POLLHUP flag was set at the same time).

Danny Auble
committed
-- Pulled Cray logic out of common/node_select.c into it's own
select/cray plugin cons_res is the default. To use linear add 'Linear' to
SelectTypeParameters.
-- Fixed bug where resizing jobs didn't correctly set used limits correctly.
-- Change sched/backfill default time interval to 30 seconds and defer attempt
to backfill schedule if slurmctld has more than 5 active RPCs. General
improvements in logic scalability.
-- Add SchedulerParameters option of default_sched_depth=# to control how
many jobs on queue should be tested for attempted scheduling when a job
completes or other routine events. Default value is 100 jobs. The full job
queue is tested on a less frequent basis. This option can dramatically
improve performance on systems with thousands of queued jobs.
-- Gres/gpu now sets the CUDA_VISIBLE_DEVICES environment to control which
GPU devices should be used for each job or job step and CUDA version 3.1+
is used. NOTE: SLURM's generic resource support is still under development.
-- Modify select/cons_res to pack jobs onto allocated nodes differently and

Moe Jette
committed
minimize system fragmentation. For example on nodes with 8 CPUs each, a
job needing 10 CPUs will now ideally be allocated 8 CPUs on one node and
2 CPUs on another node. Previously the job would have ideally been
allocated 5 CPUs on each node, fragmenting the unused resources more.
-- Modified the behavior of update_job() in job_mgr.c to return when the first
error is encountered instead of continuing with more job updates.
-- Removed all references to the following slurm.conf parameters, all of which
have been removed or replaced since version 2.0 or earlier: HashBase,
HeartbeatInterval, JobAcctFrequency, JobAcctLogFile (instead use
AccountingStorageLoc), JobAcctType, KillTree, MaxMemPerTask, and
MpichGmDirectSupport.
-- Fix bug in slurmctld restart logic that improperly reported jobs had
invalid features: "Job 65537 has invalid feature list: fat".

Danny Auble
committed
-- BLUEGENE - Removed thread pool for destroying blocks. It turns out the
memory leak we were concerned about for creating and destroying threads
in a plugin doesn't exist anymore. This increases throughput dramatically,
allowing multiple jobs to start at the same time.

Danny Auble
committed
-- BLUEGENE - Removed thread pool for starting and stopping jobs. For similar
reasons as noted above.
-- BLUEGENE - Handle blocks that never deallocate.
* Changes in SLURM 2.2.0.pre9
=============================

Danny Auble
committed
-- sbatch can now submit jobs to multiple clusters and run on the earliest
available.
-- Fix bug introduced in pre8 that prevented job dependencies and job
triggers from working without the --enable-debug configure option.
-- Replaced slurm_addr with slurm_addr_t
-- Skeleton code added for BlueGeneQ.
-- Jobs can now be submitted to multiple partitions (job queues) and use the
one permitting earliest start time.

Danny Auble
committed
-- Change slurmdb_coord_table back to acct_coord_table to keep consistant
with < 2.1.
-- Introduced locking system similar to that in the slurmctld for the
assoc_mgr.
-- Added ability to change a users name in accounting.
-- Restore squeue support for "%G" format (group id) accidentally removed in
2.2.0.pre7.
-- Added preempt_mode option to QOS.
-- Added a grouping=individual for sreport size reports.
-- Added remove_qos logic to jobs running under a QOS that was removed.
-- scancel now exits with a 1 if any job is non-existant when canceling.
-- Better handling of select plugins that don't exist on various systems for
cross cluster communication. Slurmctld, slurmd, and slurmstepd now only
load the default select plugin as well.
-- Better error handling when loading plugins.
-- Prevent scontrol from aborting if getlogin() returns NULL.
-- Prevent scontrol segfault when there are hidden nodes.
-- Prevent srun segfault after task launch failure.
-- Added job_submit/lua plugin.
-- Fixed sinfo on a bluegene system to print correctly the output for:

Danny Auble
committed
sinfo -e -o "%9P %6m %.4c %.22F %f"
-- Add scontrol commands "hold" and "release" to simplify setting a job's
priority to 0 or 1. Also tests that the job is in pending state.
-- Increase maximum node list size (for incoming RPC) from 1024 bytes to 64k.
-- In the backup slurmctld, purge triggers before recovering trigger state to
avoid duplicate entries.
-- Fix bug in sacct processing of --fields= option.
-- Fix bug in checkpoint/blcr for jobs spanning multiple nodes introduced when
changing some variable names in version 2.2.0.pre5.
-- Removed the vestigal set_max_cluster_usage() function from the Priority
Plugin API.
-- Modify the output of "scontrol show job" for the field ReqS:C:T=. Fields
not specified by the user will be reported as "*" instead of 65534.
-- Added DefaultQOS option for an association.

Danny Auble
committed
-- BLUEGENE - Added -B option to the slurmctld to clear created blocks from
the system on start.
-- BLUEGENE - Added option to scontrol & sview to recreate existing blocks.

Danny Auble
committed
-- Fixed flags for returning messages to use the correct munge key when going
cross-cluster.

Danny Auble
committed
-- BLUEGENE - Added option to scontrol & sview to resume blocks in an error
state instead of just freeing them.

Danny Auble
committed
-- sview patched to allow multiple row selection of jobs, patch from Dan Rusak
-- Lower default slurmctld server thread count from 1024 to 256. Some systems
process threads on a last-in first-out basis and the high thread count was
causing unexpectedly high delays for some RPCs.
-- Added to sacctmgr the ability for admins to reset the raw usage of a user
or account
-- Improved the efficiency of a few lines in sacctmgr
* Changes in SLURM 2.2.0.pre8
=============================
-- Add DebugFlags parameter of "Backfill" for sched/backfill detailed logging.
-- Add DebugFlags parameter of "Gang" for detailed logging of gang scheduling
activities.
-- Add DebugFlags parameter of "Priority" for detailed logging of priority
multifactor activities.
-- Add DebugFlags parameter of "Reservation" for detailed logging of advanced
reservations.
-- Add run time to mail message upon job termination and queue time for mail
message upon job begin.
-- Add email notification option for job requeue.
-- Generate a fatal error if the srun --relative option is used when not
within an existing job allocation.
-- Modify the meaning of InactiveLimit slightly. It will now cancel the job
allocation created using the salloc or srun command if those commands
cease responding for the InactiveLimit regardless of any running job steps.
This parameter will no longer effect jobs spawned using sbatch.
-- Remove AccountingStoragePass and JobCompPass from configuration RPC and
scontrol show config command output. The use of SlurmDBD is still strongly
recommended as SLURM will have limited database functionality or protection
otherwise.
-- Add sbatch options of --export and SBATCH_EXPORT to control which
environment variables (if any) get propagated to the spawned job. This is
particularly important for jobs that are submitted on one cluster and run
on a different cluster.
-- Fix bug in select/linear when used with gang scheduling and there are
preempted jobs at the time slurmctld restarts that can result in over-
subscribing resources.
-- Added keeping track of the qos a job is running with in accounting.

Danny Auble
committed
-- Fix for handling correctly jobs that resize, and also reporting correct
stats on a job after it finishes.

Danny Auble
committed
-- Modify gang scheduler so with SelectTypeParameter=CR_CPUS and task
affinity is enabled, keep track of the individual CPUs allocated to jobs
rather than just the count of CPUs allocated (which could overcommit
specific CPUs for running jobs).
-- Modify select/linear plugin data structures to eliminate underflow errors
for the exclusive_cnt and tot_job_cnt variables (previously happened when
slurmctld reconfigured while the job was in completing state).
-- Change slurmd's working directory (and location of core files) to match
that of the slurmctld daemon: the same directory used for log files,
SlurmdLogFile (if specified with an absolute pathname) otherwise the
directory used to save state, SlurmdSpoolDir.
-- Add sattach support for the --pty option.
-- Modify slurmctld communications logic to accept incoming messages on more
than one port for improved scalability.
-- Add SchedulerParameters option of "defer" to avoid trying to schedule a
job at submission time, but to attempt scheduling many jobs at once for
improved performance under heavy load.
-- Correct logic controlling slurmctld thread limit eliminating check of
RLIMIT_STACK.
-- Make slurmctld's trigger logic more robust in the event that job records
get purged before their trigger can be processed (e.g. MinJobAge=1).
-- Add support for users to hold/release their own jobs (submit the job with
srun/sbatch --hold/-H option or use "scontrol update jobid=# priority=0"
to hold and "scontrol update jobid=# priority=1" to release).
-- Added ability for sacct to query jobs by qos and a range of timelimits.
-- Added ability for sstat to query pids of steps running.
-- Support time specification in UTS format with a prefix of "uts" (e.g.
"sbatch --begin=uts458389988 my.script").
* Changes in SLURM 2.2.0.pre7
=============================
-- Fixed issue with sacctmgr if querying against non-existent cluster it

Danny Auble
committed
works the same way as 2.1.
-- Added infrastructure to support allocation of generic node resources (gres).
-Modified select/linear and select/cons_res plugins to allocate resources
at the level of a job without oversubcription.
-Get sched/backfill operating with gres allocations.
-Get gres configuration changes (reconfiguration) working.
-Have job steps allocate resources.
-Modified job step credential to include the job's and step's gres
allocation details.
-Integrate with HWLOC library to identify GPUs and NICs configured on each
node.
-- SLURM commands (squeue, sinfo, etc...) can now go cross-cluster on like
linux systems. Cross-cluster for bluegene to linux and such should
-- Added the ability to configure PreemptMode on a per-partition basis.
-- Change slurmctld's default thread limit count to 1024, but adjust that down
as needed based upon the process's resource limits.
-- Removed the non-functional "SystemCPU" and "TotalCPU" reporting fields from
sstat and updated man page
-- Correct location of apbasil command on Cray XT systems.
-- Fixed bug in MinCPU and AveCPU calculations in sstat command
-- Send message to srun when the Prolog takes too long (MessageTimeout) to
complete.
-- Change timeout for socket connect() to be half of configured MessageTimeout.
-- Added high-throughput computing web page with configuration guidance.
-- Use more srun sockets to process incoming PMI (MPICH2) connections for
better scalability.
-- Added DebugFlags for the select/bluegene plugin: DEBUG_FLAG_BG_PICK,
DEBUG_FLAG_BG_WIRES, DEBUG_FLAG_BG_ALGO, and DEBUG_FLAG_BG_ALGO_DEEP.
-- Remove vestigial job record field "kill_on_step_done" (internal to the
slurmctld daemon only).
-- For MPICH2 jobs: Clear PMI state between job steps.
* Changes in SLURM 2.2.0.pre6
=============================
-- sview - added ability to see database configuration.
-- sview - added ability to add/remove visible tabs.
-- sview - change way grid highlighting takes place on selected objects.
-- Added infrastructure to support allocation of generic node resources.
-Added node configuration parameter of Gres=.
-Added ability to view/modify a node's gres using scontrol, sinfo and sview.
-Added salloc, sbatch and srun --gres option.
-Added ability to view a job or job step's gres using scontrol, squeue and
sview.
-Added new configuration parameter GresPlugins to define plugins used to
manage generic resources.
-Added DebugFlags option of "gres" for detailed debugging of gres actions.
-- Slurmd modified to log slow slurmstepd startup and note possible file system
problem.
-- sview - There is now a .slurm/sviewrc created when running sview.

Danny Auble
committed
Defaults are put in there as to how sview looks when first launched.
You can set these by Ctrl-S or Options->Set Default Settings.
-- Add scontrol "wait_job <job_id>" option to wait for nodes to boot as needed.

Moe Jette
committed
Useful for batch jobs (in Prolog, PrologSlurmctld or the script) if powering
down idle nodes.
-- Added salloc and sbatch option --wait-for-nodes. If set non-zero, job
initiation will be delayed until all allocated nodes have booted. Salloc
will log the delay with the messages "Waiting for nodes to boot" and "Nodes
are ready for use".

Danny Auble
committed
-- The Priority/mulitfactor plugin now takes into consideration size of job
in cpus as well as size in nodes when looking at the job size factor.
Previously only nodes were considered.

Danny Auble
committed
-- When using the SlurmDBD messages waiting to be sent will be combined
and sent in one message.
-- Remove srun's --core option. Move the logic to an optional SPANK plugin
(currently in the contribs directory, but plan to distribute through
http://code.google.com/p/slurm-spank-plugins/).

Danny Auble
committed
-- Patch for adding CR_CORE_DEFAULT_DIST_BLOCK as a select option to layout
jobs using block layout across cores within each node instead of cyclic
which was previously the default.

Danny Auble
committed
-- Accounting - When removing associations if jobs are running, those jobs
must be killed before proceeding. Before the jobs were killed
automatically thus causing user confusion on what is most likely an
admin's mistake.
-- sview - color column keeps reference color when highlighting.
-- Configuration parameter MaxJobCount changed from 16-bit to 32-bit field.
The default MaxJobCount was changed from 5,000 to 10,000.

Danny Auble
committed
-- SLURM commands (squeue, sinfo, etc...) can now go cross-cluster on like
linux systems. Cross-cluster for bluegene to linux and such does not
currently work. You can submit jobs with sbatch. Salloc and srun are not
cross-cluster compatible, and given their nature to talk to actual compute

Danny Auble
committed
nodes these will likely never be.
-- salloc modified to forward SIGTERM to the spawned program.
-- In sched/wiki2 (for Moab support) - Add GRES and WCKEY fields to MODIFYJOBS
and GETJOBS commands. Add GRES field to GETNODES command.
-- In struct job_descriptor and struct job_info: rename min_sockets to
sockets_per_node, min_cores to cores_per_socket, and min_threads to
threads_per_core (the values are not minimum, but represent the target
values).
-- Fixed bug in clearing a partition's DisableRootJobs value reported by
Hongjia Cao.
-- Purge (or ignore) terminated jobs in a more timely fashion based upon the
MinJobAge configuration parameter. Small values for MinJobAge should improve
responsiveness for high job throughput.
* Changes in SLURM 2.2.0.pre5
=============================
-- Modify commands to accept time format with one or two digit hour value
-- Modify time parsing logic to accept "minute", "hour", "day", and "week" in
addition to the currently accepted "minutes", "hours", etc.
-- Add slurmd option of "-C" to print actual hardware configuration and exit.
-- Pass EnforcePartLimits configuration parameter from slurmctld for user
commands to see the correct value instead of always "NO".
-- Modify partition data structures to replace the default_part,
disable_root_jobs, hidden and root_only fields with a single field called
"flags" populated with the flags PART_FLAG_DEFAULT, PART_FLAG_NO_ROOT
PART_FLAG_HIDDEN and/or PART_FLAG_ROOT_ONLY. This is a more flexible
solution besides making for smaller data structures.
-- Add node state flag of JOB_RESIZING. This will only exist when a job's
accounting record is being written immediately before or after it changes
size. This permits job accounting records to be written for a job at each
size.
-- Make calls to jobcomp and accounting_storage plugins before and after a job
changes size (with the job state being JOB_RESIZING). All plugins write a
record for the job at each size with intermediate job states being
-- When changing a job size using scontrol, generate a script that can be
executed by the user to reset SLURM environment variables.
-- Modify select/linear and select/cons_res to use resources released by job
resizing.
-- Added to contribs foundation for Perl extension for slurmdb library.
-- Add new configuration parameter JobSubmitPlugins which provides a mechanism
to set default job parameters or perform other site-configurable actions at
job submit time.
-- Better postgres support for accounting, still beta.
-- Speed up job start when using the slurmdbd.

Danny Auble
committed
-- Forward step failure reason back to slurmd before in some cases it would
just be SLURM_FAILURE returned.
-- Changed squeue to fail when passed invalid -o <output_format> or
-S <sort_list> specifications.
* Changes in SLURM 2.2.0.pre4
=============================
-- Add support for a PropagatePrioProcess configuration parameter value of 2
to restrict spawned task nice values to that of the slurmd daemon plus 1.
This insures that the slurmd daemon always have a higher scheduling
priority than spawned tasks.
-- Add support in slurmctld, slurmd and slurmdbd for option of "-n <value>" to
-- Fixed slurm_load_slurmd_status and slurm_pid2jobid to work correctly when
multiple slurmds are in use.

Danny Auble
committed
-- Altered srun to set max_nodes to min_nodes if not set when doing an
allocation to mimic that which salloc and sbatch do. If running a step if
the max isn't set it remains unset.
-- Applied patch from David Egolf (David.Egolf@Bull.com). Added the ability
to purge/archive accounting data on a day or hour basis, previously
it was only available on a monthly basis.

Moe Jette
committed
-- Add support for maximum node count in job step request.
-- Fix bug in CPU count logic for job step allocation (used count of CPUS per
node rather than CPUs allocated to the job).
-- Add new configuration parameters GroupUpdateForce and GroupUpdateTime.
See "man slurm.conf" for details about how these control when slurmctld
updates its information of which users are in the groups allowed to use
partitions.

Danny Auble
committed
-- Added sacctmgr list events which will list events that have happened on
clusters in accounting.
-- Permit a running job to shrink in size using a command of
"scontrol update JobId=# NumNodes=#" or
"scontrol update JobId=# NodeList=<names>". Subsequent job steps must
explicitly specify an appropriate node count to work properly.
-- Added resize_time field to job record noting the time of the latest job
size change (to be used for accounting purposes).

Danny Auble
committed
-- sview/smap now hides hidden partitions and their jobs by default, with an
option to display them.
* Changes in SLURM 2.2.0.pre3
=============================
-- Refine support for TotalView partial attach. Add parameter to configure
program of "--enable-partial-attach".
-- In select/cons_res, the count of CPUs on required nodes was formerly
ignored in enforcing the maximum CPU limit. Also enforce maximum CPU
limit when the topology/tree plugin is configured (previously ignored).
-- In select/cons_res, allocate cores for a job using a best-fit approach.
-- In select/cons_res, for jobs that can run on a single node, use a best-fit
packing approach.
-- Add support for new partition states of DRAIN and INACTIVE and new partition
option of "Alternate" (alternate partition to use for jobs submitted to
partitions that are currently in a state of DRAIN or INACTIVE).
-- Add group membership cache. This can substantially speed up slurmctld
startup or reconfiguration if many partitions have AllowGroups configured.
-- Added slurmdb api for accessing slurm DB information.
-- In select/linear: Modify data structures for better performance and to
avoid underflow error messages when slurmctld restarts while jobs are
in completing state.
-- Added hash for slurm.conf so when nodes check in to the controller it can
verify the slurm.conf is the same as the one it is running. If not an
error message is displayed. To silence this message add NO_CONF_HASH
to DebugFlags in your slurm.conf.
-- Added error code ESLURM_CIRCULAR_DEPENDENCY and prevent circular job
dependencies (e.g. job 12 dependent upon job 11 AND job 11 is dependent
upon job 12).
-- Add BootTime and SlurmdStartTime to available node information.
-- Fixed moab_2_slurmdb to work correctly under new database schema.
-- Slurmd will drain a compute node when the SlurmdSpoolDir is full.
* Changes in SLURM 2.2.0.pre2
=============================
-- Add support for spank_get_item() to get S_STEP_ALLOC_CORES and
S_STEP_ALLOC_MEM. Support will remain for S_JOB_ALLOC_CORES and
S_JOB_ALLOC_MEM.
-- Kill individual job steps that exceed their memory limit rather than
killing an entire job if one step exceeds its memory limit.
-- Added configuration parameter VSizeFactor to enforce virtual memory limits
for jobs and job steps as a percentage of their real memory allocation.
-- Add scontrol ability to update job step's time limits.
-- Add scontrol ability to update job's NumCPUs count.
-- Add --time-min options to salloc, sbatch and srun. The scontrol command
has been modified to display and modify the new field. sched/backfill
plugin has been changed to alter time limits of jobs with the
--time-min option if doing so permits earlier job initiation.
-- Add support for TotalView symbol MPIR_partial_attach_ok with srun support
to release processes which TotalView does not attach to.
-- Add new option for SelectTypeParameters of CR_ONE_TASK_PER_CORE. This
option will allocate one task per core by default. Without this option,
by default one task will be allocated per thread on nodes with more than
one ThreadsPerCore configured.
-- Avoid accounting separately for a current pid corresponds to a Light Weight
Process (Thread POSIX) appearing in the /proc directory. Only account for
the original process (pid==tgid) to avoid accounting for memory use more
than once.
-- Add proctrack/cgroup plugin which uses Linux control groups (aka cgroup)
to track processes on Linux systems having this feature enabled (kernel
>= 2.6.24).
-- Add logging of license transations including job_id.
-- Add configuration parameters SlurmSchedLogFile and SlurmSchedLogLevel to
support writing scheduling events to a separate log file.
-- Added contribs/web_apps/chart_stats.cgi, a web app that invokes sreport to
retrieve from the accounting storage db a user's request for job usage or
machine utilization statistics and charts the results to a browser.

Danny Auble
committed
-- Massive change to the schema in the storage_accounting/mysql plugin. When
starting the slurmdbd the process of conversion may take a few minutes.
You might also see some errors such as 'error: mysql_query failed: 1206
The total number of locks exceeds the lock table size'. If you get this,
do not worry, it is because your setting of innodb_buffer_pool_size in
your my.cnf file is not set or set too low. A decent value there should
be 64M or higher depending on the system you are running on. See
RELEASE_NOTES for more information. But setting this and then
restarting the mysqld and slurmdbd will put things right. After this
change we have noticed 50-75% increase in performance with sreport and
sacct.

Danny Auble
committed
-- Fix for MaxCPUs to honor partitions of 1 node that have more than the
maxcpus for a job.
-- Add support for "scontrol notify <message>" to work for batch jobs.
-- Added SLURM_VERSION_NUMBER and removed SLURM_API_VERSION from
slurm/slurm.h.

Danny Auble
committed
-- Added support to handle communication with SLURM 2.1 clusters. Job's
should not be lost in the future when upgrading to higher versions of
SLURM.
-- Added withdeleted options for listing clusters, users, and accounts
-- Remove PLPA task affinity functions due to that package being deprecated.
-- Preserve current partition state information and node Feature and Weight
information rather than use contents of slurm.conf file after slurmctld
restart with -R option or SIGHUP. Replace information with contents of
slurm.conf after slurmctld restart without -R or "scontrol reconfigure".
See RELEASE_NOTES file fore more details.
-- Modify SLURM's PMI library (for MPICH2) to properly execute an executable
program stand-alone (single MPI task launched without srun).
-- Made GrpCPUs and MaxCPUs limits work for select/cons_res.

Danny Auble
committed
-- Moved all SQL dependant plugins into a seperate rpm slurm-sql. This
should be needed only where a connection to a database is needed (i.e.
where the slurmdbd is running)
-- Add command line option "no_sys_info" to PAM module to supress system
logging of "access granted for user ...", access denied and other errors
will still be logged.

Danny Auble
committed
-- sinfo -R now has the user and timestamp in separate fields from the reason.
-- Much functionality has been added to account_storage/pgsql. The plugin
is still in a very beta state. It is still highly advised to use the
mysql plugin, but if you feel like living on the edge or just really
like postgres over mysql for some reason here you go. (Work done
primarily by Hongjia Cao, NUDT.)
* Changes in SLURM 2.1.17
=========================
-- Correct format of --begin reported in salloc, sbatch and srun --help
message.
-- Correct logic for regular users to increase nice value of their own jobs.
* Changes in SLURM 2.1.16
=========================
-- Fixed minor warnings from gcc-4.5
-- Fixed initialization of accounting_stroage_enforce in the slurmctld.
-- Fixed bug where if GrpNodes was lowered while pending jobs existed and where
above the limit the slurmctld would seg fault.
-- Fixed minor memory leak when unpack error happens on an
association_shares_object_t.
-- Set Lft and Rgt correctly when adding association. Fix for regression
caused in 2.1.15, cosmetic fix only.
-- Replaced optarg which was undefined in some spots to make sure ENV vars are
set up correctly.
-- When removing an account from a cluster with sacctmgr you no longer get
a list of previously deleted associations.
-- Fix to make jobcomp/(pg/my)sql correctly work when the database name is
different than the default.
* Changes in SLURM 2.1.15
=========================
-- Fix bug in which backup slurmctld can purge job scripts (and kill batch
jobs) when it assumes primary control, particularly when this happens
multiple times in a short time interval.
-- In sched/wiki and sched/wiki2 add IWD (Initial Working Directory) to the
information reported about jobs.
-- Fix bug in calculating a daily or weekly reservation start time when the
reservation is updated. Patch from Per Lundqvist (National Supercomputer
Centre, Linköping University, Sweden).
-- Fix bug in how job step memory limits are calculated when the --relative
option is used.
-- Restore operation of srun -X option to forward SIGINT to spawned tasks
without killing them.
-- Fixed a bug in calculating the root account's raw usage reported by Par
Andersson
-- Fixed a bug in sshare displaying account hierarchy reported by Per
Lundqvist.
-- In select/linear plugin, when a node allocated to a running job is removed
from a partition, only log the event once. Fixes problem reported by Per
Lundqvist.
* Changes in SLURM 2.1.14
=========================
-- Fixed coding mistakes in _slurm_rpc_resv_show() and job_alloc_info() found
while reviewing the code.
-- Fix select/cons_res logic to prevent allocating resources while jobs
previously allocated resources on the node are still completing.
-- Fixed typo in job_mgr.c dealing with qos instead of associations.
-- Make sure associations and qos' are initiated when added.
-- Fixed wrong initialization for wckeys in the association manager.
-- Added wiki.conf configuration parameter of HidePartitionNodes. See
"man wiki.conf" for more information.
-- Add "JobAggregationTime=#" field SchedulerParameter configuration parameter
output.
-- Modify init.d/slurm and slurmdbd scripts to prevent the possible
inadvertent inclusion of "." in LD_LIBRARY_PATH environment variable.
To fail, the script would need to be executed by user root or SlurmUser
without the LD_LIBRARY_PATH environment variable set and there would
have to be a maliciously altered library in the working directory.
Thanks to Raphael Geissert for identifying the problem. This addresses
security vulnerability CVE-2010-3380.
* Changes in SLURM 2.1.13
=========================
-- Fix race condition which can set a node state to IDLE on slurmctld startup
even if it has running jobs.
* Changes in SLURM 2.1.12
=========================
-- Fixes for building on OS X 10.5.
-- Fixed a few '-' without a '\' in front of them in the man pages.
-- Fixed issues in client tools where a requeued job did get displayed
correctly.
-- Update typos in doc/html/accounting.shtml doc/html/resource_limits.shtml
doc/man/man5/slurmdbd.conf.5 and doc/man/man5/slurm.conf.5
-- Fixed a bug in exitcode:signal display in sacct
-- Fix bug when request comes in for consumable resources and the -c option
is used in conjunction with -O
-- Fixed squeue -o "%h" output formatting
-- Change select/linear message "error: job xxx: best_fit topology failure"
to debug type.
-- BLUEGENE - Fix for sinfo -R to group all midplanes together in a single
line for midplanes in an error state instead of 1 line for each midplane.
-- Fix srun to work correctly with --uid when getting an allocation
and creating a step, also fix salloc to assume identity at the correct
time as well.
-- BLUEGENE - Fixed issue with jobs being refused when running dynamic mode
and every job on the system happens to be the same size.
-- Removed bad #define _SLURMD_H from slurmd/get_mach_stat.h. Didn't appear
to cause any problems being there, just incorrect syntax.
-- Validate the job ID when salloc or srun receive an SRUN_JOB_COMPLETE RPC to
avoid killing the wrong job if the original command exits and the port gets
re-used by another command right away.
-- Fix to node in correct state in accounting when updating it to drain from
scontrol/sview.
-- BLUEGENE - Removed incorrect unlocking on error cases when starting jobs.
-- Improve logging of invalid sinfo and squeue print options.
-- BLUEGENE - Added check to libsched_if to allow root to run even outside of
SLURM. This is needed when running certain blocks outside of SLURM in HTC
mode.
* Changes in SLURM 2.1.11-2
===========================
-- BLUEGENE - make it so libsched_if.so is named correctly on 'L' it is
libsched_if64.so and on 'P' it is libsched_if.so
* Changes in SLURM 2.1.11
=========================
-- BLUEGENE - fix sinfo to not get duplicate entries when running command
sinfo -e -o "%9P %6m %.4c %.22F %f"
-- Fix bug that caused segv when deleting a partition with pending jobs.
-- Better error message for when trying to modify an account's name with
sacctmgr.
-- Added back removal of #include "src/common/slurm_xlator.h" from
select/cons_res.
-- Fix incorrect logic in global_accounting in regression tests for
setting QOS.
-- BLUEGENE - Fixed issue where removing a small block in dynamic mode,
and other blocks also in that midplane needed to be removed and were in
and error state. They all weren't removed correctly in accounting.
-- Prevent scontrol segv with "scontrol show node <name>" command with nodes
in a hidden partition.
-- Fixed sizing of popup grids in sview.
-- Fixed sacct when querying against a jobid the start time is not set.
-- Fix configure to get correct version of pkg-config if both 32bit and 64bit
libs are installed.
-- Fix issue with sshare not sorting correctly the tree of associations.
-- Update documentation for sreport.
-- BLUEGENE - fix regression in 2.1.10 on assigning multiple jobs to one block.
-- Minor memory leak fixed when killing job error happens.
-- Fix sacctmgr list assoc when talking to a 2.2 slurmdbd.
* Changes in SLURM 2.1.10
=========================
-- Fix memory leak in sched/builtin plugin.
-- Fixed sbatch to work correctly when no nodes are specified, but
--ntasks-per-node is.
-- Make sure account and wckey for a job are lower case before inserting into
accounting.
-- Added note to squeue documentation about --jobs option displaying jobs
even if they are on hidden partitions.
-- Fix srun to work correctly with --uid when getting an allocation
and creating a step.
-- Fix for when removing a limit from a users association inside the
fairshare tree the parents limit is now inherited automatically in
the slurmctld. Previously the slurmctld would have to be restarted.
This problem only exists when setting a users association limit to -1.
-- Patch from Matthieu Hautreux (CEA) dealing with possible overflows that
could come up with the select/cons_res plugin with uint32_t's being treated
as uint16_t's.
-- Correct logic for creating a reservation with a Duration=Infinite (used to
set reservation end time in the past).
-- Correct logic for creating a reservation that properly handles the OVERLAP
and IGNORE_JOBS flags (flags were ignored under some conditions).
-- Fixed a fair-share calculation bug in the priority/multifactor plugin.
-- Make sure a user entry in the database that was previously deleted is
restored clean when added back, i.e. remove admin privileges previously
given.
-- BLUEGENE - Future start time is set correctly when eligible time for a job
is in the future, but the job can physically run earlier.
-- Updated Documentation for sacctmgr for Wall and CPUMin options stating when
the limit is reached running jobs will be killed.
-- Fix deadlock issue in the slurmctld when lowering limits in accounting to
lower than that of pending jobs.
-- Fix bug in salloc, sbatch and srun that could under some conditions process
the --threads-per-core, --cores-per-socket and --sockets-per-node options
improperly.
-- Fix bug in select/cons_res with memory management plus job preemption with
job removal (e.g. requeue) which under some conditions failed to preempt
jobs.
-- Fix deadlock potential when using qos and associations in the slurmctld.
-- Update documentation to state --ntasks-per-* is for a maximum value
instead of an absolute.
-- Get ReturnToService=2 working for front-end configurations (e.g. Cray or
BlueGene).
-- Do not make a non-responding node available for use after running
"scontrol update nodename=<name> state=resume". Wait for node to respond
before use.
-- Added slurm_xlator.h to jobacct_gather plugins so they resolve symbols
correctly when linking to the slurm api.
-- You can now update a jobs QOS from scontrol. Previously you could only do
this from sview.
-- BLUEGENE - Fixed bug where if running in non-dynamic mode sometimes the
start time returned for a job when using test-only would not be correct.
* Changes in SLURM 2.1.9
========================
-- In select/linear - Fix logic to prevent over-subscribing memory with shared
nodes (Shared=YES or Shared=FORCE).
-- Fix for handling -N and --ntasks-per-node without specifying -n with
salloc and sbatch.
-- Fix jobacct_gather/linux if not polling on tasks to give tasks time to
start before doing initial gather.
-- When changing priority with the multifactor plugin we make sure we update
the last_job_update variable.
-- Fixed sview for gtk < 2.10 to display correct debug level at first.
-- Fixed sview to not select too fast when using a mouse right click.
-- Fixed sacct to display correct timelimits for jobs from accounting.
-- Fixed sacct when running as root by default query all users as documented.
-- In proctrack/linuxproc, skip over files in /proc that are not really user
processes (e.g. "/proc/bus").
-- Fix documentation bug for slurmdbd.conf
-- Fix slurmctld to update qos preempt list without restart.
-- Fix bug in select/cons_res that in some cases would prevent a preempting job
from using of resources already allocated to a preemptable running job.
-- Fix for sreport in interactive mode to honor parsable/2 options.
-- Fixed minor bugs in sacct and sstat commands
-- BLUEGENE - Fixed issue if the slurmd becomes unresponsive and you have
blocks in an error state accounting is correct when the slurmd comes
back up.
-- Corrected documentation for -n option in srun/salloc/sbatch
-- BLUEGENE - when running a willrun test along with preemption the bluegene
plugin now does the correct thing.
-- Fix possible memory corruption issue which can cause slurmctld to abort.
-- BLUEGENE - fixed small memory leak when setting up env.
-- Fixed deadlock if using accounting and cluster changes size in the
database. This can happen if you mistakenly have multiple primary
slurmctld's running for a single cluster, which should rarely if ever
happen.
-- Fixed sacct -c option.
-- Critical bug fix in sched/backfill plugin that caused memory corruption.
* Changes in SLURM 2.1.8
========================
-- Update BUILD_NOTES for AIX and bgp systems on how to get sview to
build correctly.
-- Update man page for scontrol when nodes are in the "MIXED" state.
-- Better error messages for sacctmgr.
-- Fix bug in allocation of CPUs with select/cons_res and --cpus-per-task
option.
-- Fix bug in dependency support for afterok and afternotok options to insure
that the job's exit status gets checked for dependent jobs prior to puring
completed job records.
-- Fix bug in sched/backfill that could set an incorrect expected start time
for a job.
-- BLUEGENE - Fix for systems that have midplanes defined in the database
that don't exist.
-- Accounting, fixed bug where if removing an object a rollback wasn't
possible.
-- Fix possible scontrol stack corruption when listing jobs with very a long
job or working directory name (over 511 characters).
-- Insure that SPANK environment variables set by salloc or sbatch get
propagated to the Prolog on all nodes by setting SLURM_SPANK_* environment
variables for srun's use.
-- In sched/wiki2 - Add support for the MODIFYJOB command to alter a job's
comment field
-- When a cluster first registers with the SlurmDBD only send nodes in an
non-usable state. Before all nodes were sent.
-- Alter sacct to be able to query jobs by association id.
-- Edit documentation for scontrol stating ExitCode as something not alterable.
-- Update documentation about ReturnToService and silently rebooting nodes.
-- When combining --ntasks-per-node and --exclusive in an allocation request
the correct thing, giving the allocation the entire node but only
ntasks-per-node, happens.
-- Fix accounting transaction logs when deleting associations to put the
ids instead of the lfts which could change over time.
-- Fix support for salloc, sbatch and srun's --hint option to avoid allocating
a job more sockets per node or more cores per socket than desired. Also
when --hint=compute_bound or --hint=memory_bound then avoid allocating more
than one task per hyperthread (a change in behavior, but almost certainly
a preferable mode of operation).
* Changes in SLURM 2.1.7
========================
-- Modify srun, salloc and sbatch parsing for the --signal option to accept
either a signal name in addition to the previously supported signal
numbers (e.g. "--signal=USR2@200").
-- BLUEGENE - Fixed sinfo --long --Node output for cpus on a single cnode.
-- In sched/wiki2 - Fix another logic bug in support of Moab being able to
identify preemptable jobs.
-- In sched/wiki2 - For BlueGene systems only: Fix bug preventing Moab from
being able to correctly change the node count of pending jobs.
-- In select/cons_res - Fix bug preventing job preemption with a configuration
of Shared=FORCE:1 and PreemptMode=GANG,SUSPEND.
-- In the TaskProlog, add support for an "unset" option to clear environment
variables for the user application. Also add support for embedded white-
space in the environment variables exported to the user application
(everything after the equal sign to the end of the line is included without
alteration).
-- Do not install /etc/init.d/slurm or /etc/init.d/slurmdbd on AIX systems.
-- BLUEGENE - fixed check for small blocks if a node card of a midplane is
in an error state other jobs can still run on the midplane on other
nodecards.
-- BLUEGENE - Check to make sure job killing is in the active job table in
DB2 when killing the job.
-- Correct logic to support ResvOverRun configuration parameter.
-- Get --acctg-freq option working for srun and salloc commands.
-- Fix sinfo display of drained nodes correctly with the summarize flag.
-- Fix minor memory leaks in slurmd and slurmstepd.
-- Better error messages for failed step launch.
-- Modify srun to insure compatability of the --relative option with the node
count requested.
* Changes in SLURM 2.1.6-2
==========================
-- In sched/wiki2 - Fix logic in support of Moab being able to identify
preemptable jobs.
-- Applied fixes to a debug4 message in priority_multifactor.c sent in by
Per Lundqvist
-- BLUEGENE - Fixed issue where incorrect nodecards could be picked when
looking at combining small blocks to make a larger small block.
* Changes in SLURM 2.1.6
========================
-- For newly submitted jobs, report expected start time in squeue --start as
"N/A" rather than current time.
-- Correct sched/backfill logic so that it runs in a more timely fashion.
-- Fixed issue if running on accounting cache and priority/multifactor to
initialize the root association when the database comes back up.

Moe Jette
committed
-- Emulated BLUEGENE - fixed issue where blocks weren't always created
correctly when loading from state. This does not apply to a real
bluegene system, only emulated.
-- Fixed bug when job is completing and its cpu_cnt would be calculated
incorrectly, possibly resulting in an underflow being logged.
-- Fixed bug where if there are pending jobs in a partition which was
updated to have no nodes in it the slurmctld would dump core.
-- Fixed smap and sview to display partitions with no nodes in them.
-- Improve configure script's logic to detect LUA libraries.
-- Fix bug that could cause slurmctld to abort if select/cons_res is used AND a
job is submitted using the --no-kill option AND one of the job's nodes goes
DOWN AND slurmctld restarts while that job is still running.
-- In jobcomp plugins, job time limit was sometimes recorded improperly if not
set by user (recorded huge number rather than partition's time limit).
* Changes in SLURM 2.1.5
========================
-- BLUEGENE - Fixed display of draining nodes for sinfo -R.
-- Fixes to scontrol and sview when setting a job to an impossible start time.
-- Added -h to srun for help.
-- Fix for sacctmgr man page to remove erroneous 'with' statements.
-- Fix for unpacking jobs with accounting statistics, previously it appears
only steps were unpacked correctly, for the most case sacct would only
display this information making this fix a very minor one.
-- Changed scontrol and sview output for jobs with unknown end times from
'NONE' to 'Unknown'.
-- Fixed mysql plugin to reset classification when adding a
previously deleted cluster.
-- Permit a batch script to reset umask and have that propagate to tasks
spawed by subsequent srun. Previously the umask in effect when sbatch was
executed was propagated to tasks spawed by srun.
-- Modify slurm_job_cpus_allocated_on_node_id() and
slurm_job_cpus_allocated_on_node() functions to not write explanation of
failures to stderr. Only return -1 and set errno.
-- Correction in configurator.html script. Prolog and Epilog were reversed.
-- BLUEGENE - Fixed race condition where if a nodecard has an error on an
un-booted block when a job comes to use it before the state checking
thread notices it which could cause the slurmctld to lock up on a
non-dynamic system.
-- In select/cons_res with FastSchedule=0 and Procs=# defined for the node,
but no specific socket/core/thread count configured, avoid fatal error if
the number of cores on a node is less than the number of Procs configured.
-- Added ability for the perlapi to utilize opaque data types returned from
the C api.
-- BLUEGENE - made the perlapi get correct values for cpus per node,
Previously it would give the number of cpus per cnode instead of midplane.
-- BLEUGENE - Fixed issue where if a block being selected for a job to use
and during the process a hardware failure happens, previously the block
would still be allowed to be used which would fail or requeue the job
depending on the configuration.
-- For SPANK job environment, avoid duplicate "SPANK_" prefix for environment
set by sbatch jobs.
-- Make squeue select jobs on hidden partitions when requesting more than one.
-- Avoid automatically cancelling job steps when all of the tasks on some node
have gracefully terminated.
* Changes in SLURM 2.1.4
========================
-- Fix for purge script in accounting to use correct options.
-- If SelectType=select/linear and SelectTypeParameters=CR_Memory fix bug that
would fail to release memory reserved for a job if "scontrol reconfigure"
is executed while the job is in completing state.
-- Fix bug in handling event trigger for job time limit while job is still
in pending state.
-- Fixed display of Ave/MaxCPU in sacct for jobs. Steps were printed
correctly.
-- When node current features differs from slurm.conf, log the node names
using a hostlist expression rather than listing individual node names.
-- Improve ability of srun to abort job step for some task launch failures.
-- Fix mvapich plugin logic to release the created job allocation on
initialization failure (previously the failures would cancel job step,
but retain job allocation).
-- Fix bug in srun for task count so large that it overflows int data type.
-- Fix important bug in select/cons_res handling of ntasks-per-core parameter
that was uncovered by a bug fixed in v2.1.3. Bug produced fatal error for
slurmctld: "cons_res: cpus computation error".
-- Fix bug in select/cons_res handling of partitions configured with
Shared=YES. Prior logic failed to support running multiple jobs per node.
* Changes in SLURM 2.1.3-2
==========================
-- Modified spec file to obsolete pam_slurm when installing
the slurm-pam_slurm rpm.
* Changes in SLURM 2.1.3-1
==========================
-- BLUEGENE - Fix issues on static/overlap systems where if a midplane
was drained you would not be able to create new blocks on it.
-- In sched/wiki2 (for Moab): Add excluded host list to job information
using new keyword "EXCLUDE_HOSTLIST".
-- Correct slurmd reporting of incorrect socket/core/thread counts.
-- For sched/wiki2 (Moab): Do not extend a job's end time for suspend/resume
or startup delay due to node boot time. A job's end time will always be
its start time plus time limit.
-- Added build-time option (to configure program) of --with-pam_dir to
specify the directory into which PAM modules get installed, although it
should pick the proper directory by default. "make install" and "rpmbuild"
should now put the pam_slurm.so file in the proper directory.
-- Modify PAM module to link against SLURM API shared library and use exported
slurm_hostlist functions.
-- Do not block new jobs with --immediate option while another job is in the
process of being requeued (which can take a long time for some node failure
modes).
-- For topology/tree, log invalid hostnames in a single hostlist expression
rather than one per line.
-- A job step's default time limit will be UNLIMITED rather than partition's
default time limit. The step will automatically be cancelled as part of the
job termination logic when the job's time limit is reached.
-- sacct - fixed bug when checking jobs against a reservation
-- In select/cons_res, fix support for job allocation with --ntasks_per_node
option. Previously could allocate too few CPUs on some nodes.
-- Adjustment made to init message to the slurmdbd to allow backwards
compatibility with future 2.2 release. YOU NEED TO UPGRADE SLURMDBD
BEFORE ANYTHING ELSE.
-- Fix accounting when comment of down/drained node has double quotes in it.
* Changes in SLURM 2.1.2
========================
-- Added nodelist to sview for jobs on non-bluegene systems
-- Correction in value of batch job environment variable SLURM_TASKS_PER_NODE
under some conditions.
-- When a node silently fails which is already drained/down the reason
for draining for the node is not changed.
-- Srun will ignore SLURM_NNODES environment variable and use the count of
currently allocated nodes if that count changes during the job's lifetime
(e.g. job allocation uses the --no-kill option and a node goes DOWN, job
step would previously always fail).
-- Made it so sacctmgr can't add blank user or account. The MySQL plugin
will also reject such requests.
-- Revert libpmi.so version for compatibility with SLURM version 2.0 and
earlier to avoid forcing applications using a specific libpmi.so version to
rebuild unnecessarily (revert from libpmi.so.21.0.0 to libpmi.so.0.0.0).
-- Restore support for a pending job's constraints (required node features)
when slurmctld is restarted (internal structure needed to be rebuilt).
-- Removed checkpoint_blcr.so from the plugin rpm in the slurm.spec since
it is also in the blcr rpm.
-- Fixed issue in sview where you were unable to edit the count
of jobs to share resources.
-- BLUEGENE - Fixed issue where tasks on steps weren't being displayed
correctly with scontrol and sview.
-- BLUEGENE - fixed wiki2 plugin to report correct task count for pending
jobs.
-- BLUEGENE - Added /etc/ld.so.conf.d/slurm.conf to point to the
directory holding libsched_if64.so when building rpms.
-- Adjust get_wckeys call in slurmdbd to allow operators to list wckeys.
========================

Danny Auble
committed
-- Fix for case sensitive databases when a slurmctld has a mixed case
clustername to lower case the string to easy compares.

Danny Auble
committed
-- Fix squeue if job is completing and failed to print remaining
nodes instead of failed message.
-- Fix sview core when searching for partitions by state.

Danny Auble
committed
-- Fixed setting the start time when querying in sacct to the
beginning of the day if not set previously.
-- Defined slurm_free_reservation_info_msg and slurm_free_topo_info_msg
in common/slurm_protocol_defs.h
-- Avoid generating error when a job step includes a memory specification and
memory is not configured as a consumable resource.
-- Patch for small memory leak in src/common/plugstack.c
-- Fix bug in which improperly formed job dependency specification can cause
slurmctld to abort.
-- Fixed issue where slurmctld wouldn't always get a message to send cluster
information when registering for the first time with the slurmdbd.
-- Add slurm_*_trigger.3 man pages for event trigger APIs.
-- Fix bug in job preemption logic that would free allocated memory twice.
-- Fix spelling issues (from Gennaro Oliva)
-- Fix issue when changing parents of an account in accounting all childern
weren't always sent to their respected slurmctlds until a restart.
-- Restore support for srun/salloc/sbatch option --hint=nomultithread to
bind tasks to cores rather than threads (broken in slurm v2.1.0-pre5).
-- Fix issue where a 2.0 sacct could not talk correctly to a 2.1 slurmdbd.
-- BLUEGENE - Fix issue where no partitions have any nodes assigned them to
alert user no blocks can be created.
-- BLUEGENE - Fix smap to put BGP images when using -Dc on a Blue Gene/P
system.
-- Set SLURM_SUBMIT_DIR environment variable for srun and salloc commands to
match behavior of sbatch command.
-- Report WorkDir from "scontrol show job" command for jobs launched using
salloc and srun.
-- Update correctly the wckey when changing it on a pending job.
-- Set wckeyid correctly in accounting when cancelling a pending job.
-- BLUEGENE - critical fix where jobs would be killed incorrectly.
-- BLUEGENE - fix for sview putting multiple ionodes on to nodelists when
viewing the jobs tab.
========================
-- Improve sview layout of blocks in use.
-- A user can now change the dimensions of the grid in sview.
-- BLUEGENE - improved startup speed further for large numbers of defined
blocks
-- Fix to _get_job_min_nodes() in wiki2/get_jobs.c suggested by Michal Novotny
-- BLUEGENE - fixed issues when updating a pending job when a node
count was incorrect for the asked for connection type.

Danny Auble
committed
-- BLUEGENE - fixed issue when combining blocks that are in ready states to
make a larger block from those or make multiple smaller blocks by
splitting the larger block. Previously this would only work with block
in a free state.

Danny Auble
committed
-- Fix bug in wiki(2) plugins where if HostFormat=2 and the task list is
greater than 64 we don't truncate. Previously this would mess up Moab
by sending a truncated task list when doing a get jobs.
-- Added update slurmctld debug level to sview when in admin mode.
-- Added logic to make sure if enforcing a memory limit when using the
jobacct_gather plugin a user can no longer turn off the logic to enforce
the limit.
-- Replaced many calls to getpwuid() with reentrant uid_to_string()

Danny Auble
committed
-- The slurmstepd will now refresh it's log file handle on a reconfig,
previously if a log was rolled any output from the stepd was lost.
* Changes in SLURM 2.1.0-pre9
=============================
-- Added the "scontrol update SlurmctldDebug" as the preferred alternative to
the "scontrol setdebug" command.

Danny Auble
committed
-- BLUEGENE - made it so when removing a block in an error state the nodes in
the block are set correctly in accounting as not in error.

Danny Auble
committed
-- Fixed issue where if slurmdbd is not up qos' are set up correctly for
-- scontrol, squeue, sview all display the correct node, cpu count along with
correct corresponding nodelist on completing jobs.
-- Patch (Mark Grondona) fixes serious security vulnerability in SLURM in
the spank_job_env functionality.
-- Improve spank_job_env interface and documentation
-- Add ESPANK_NOT_LOCAL error code to spank_err_t
-- Made the #define DECAY_INTERVAL used in the priority/multifactor plugin
a slurm.conf variable (PriorityCalcPeriod)

Danny Auble
committed
-- Added new macro SLURM_VERSION for use in autoconf scripts to determine
current version of slurm installed on system when building against the api.
-- Patch from Matthieu Hautreux that adds an entry into the error file when
a job or step receives a TERM or KILL signal.

Danny Auble
committed
-- Make it so env var SLURM_SRUN_COMM_HOST is overwritten if already in
* Changes in SLURM 2.1.0-pre8
=============================
-- Rearranged the "scontrol show job" output into functional groupings
-- Change the salloc/sbatch/srun -P option to -d (dependency)
-- Removed the srun -d option; must use srun --slurmd-debug instead
-- When running the mysql plugin natively MUNGE errors are now eliminated
when sending updates to slurmctlds.
-- Check to make sure we have a default account before looking to
fill in default association.
-- Accounting - Slurmctld and slurmdbd will now set uids of users which were
created after the start of the daemons on reconfig. Slurmdbd will
attempt to set previously non-existant uids every hour.

Danny Auble
committed
-- Patch from Aaron Knister and Mark Grondona, to parse correctly quoted
#SBATCH options in a batch script.
-- job_desc_msg_t - in, out, err have been changed to std_in, std_out,
and std_err respectfully. Needed for PySLURM, since Python sees (in)
as a keyword.
-- Changed the type of addr to struct sockaddr_in in _message_socket_accept()

Danny Auble
committed
in sattach.c, step_launch.c, and allocate_msg.c, and moved the function
into a common place for all the calls since the code was very similar.
-- proctrack/lua support has been added see contribs/lua/protrack.lua
-- replaced local gtk m4 test with AM_PATH_GTK_2_0
-- changed AC_CHECK_LIB to AC_SEARCH_LIBS to avoid extra libs in
compile lines.
-- Patch from Matthieu Hautreux to improve error message in slurmd/req.c
-- Added support for split groups from (Matthiu Hautreux CEA)
-- Patch from Mark Grondona to move blcr scripts into pkglibexecdir
-- Patch from Doug Parisek to calculate a job's projected start time under the
builtin scheduler.
-- Removed most global variables out of src/common/jobacct_common.h
* Changes in SLURM 2.1.0-pre7
=============================

Danny Auble
committed
-- BLUEGENE - make 2.1 run correctly on a real bluegene cluster
-- sacctmgr - Display better debug for when an admin specifies a non-existant

Danny Auble
committed
parent account when changing parent accounts.
-- Added a mechanism to the slurmd to defer the epilog from starting until
after a running prolog has finished.
-- If a node reboots inbetween checking status the node is marked down unless
ReturnToService=2

Danny Auble
committed
-- Added -R option to slurmctld to recover partition state also when
restarting or reconfiguring.
* Changes in SLURM 2.1.0-pre6
=============================
-- When getting information about nodes in hidden partitions, return a node
name of NULL rather than returning no information about the node so that
node index information is still valid.
-- When querying database for jobs in certain state and a time period is

Danny Auble
committed
given only jobs in that state during the period will be returned,
previously if a time period was given in sacct jobs eligible to run or
running would be displayed, which is still the default if no states are
requested.
-- One can now query jobs based on size (nodes and or cpus) (mysql plugin only)

Don Lipari
committed
-- Applied patch from Mark Grondona that tests for a missing config file before
any other processing in spank_init(). This now prevents fatal errors from
being mistakenly treated as recoverable.
-- --enable-debug no longer has to be stated at configure time to have
the slurmctld or slurmstepd dump core on a seg fault.
-- Moved the errant slurm_job_node_ready() declaration from job_info.h to
slurm.h and deleted job_info.h.
slurm_job_cpus_allocated_on_node() API for working with the
job_resources_t structure.

Danny Auble
committed
-- BLUEGENE - speed up start up for systems that have many blocks (100+)
configured on the system.

Danny Auble
committed
* Changes in SLURM 2.1.0-pre5
=============================
-- Add squeue option "--start" to report expected start time of pending jobs.
-- Sched/backfill plugin modified to set expected start time of pending jobs.
-- Add SchedulerParameters option of "max_job_bf=#" to control how far down
the queue of pending jobs that SLURM searches in an attempt backfill
schedule them. The default value is 50 jobs.
-- Fixed cause of squeue -o "%C" seg fault.
-- Add -"-signal=<int>@<time>" option to salloc, sbatch and srun commands to
notify programs before reaching the end of their time limit.
-- Add scontrol option to update a running job's EndTime (also resets the
job's time limit).
-- Add new job wait reason, ReqNodeNotAvail: Required node is not available
(down or drained).
-- Log when slurmctld or slurmd are started with small core file limit.
-- Permit job's owner to change features, processor count, minimum and
maximun node counts of pending jobs (the operation was previously
restricted to user root)
-- Applied patch from Chuck Clouston for scontrol man page with clarifications
and additional info
-- Change slurm errno name from ESLURM_TOO_MANY_REQUESTED_NODES to
ESLURM_INVALID_NODE_COUNT to better reflect its meaning.
-- Fix bug in sched/backfill which could result in invalid memory reference
when trying to schedule jobs submitted with --exclude option.
-- Fix for slurmctld deadlock at startup with PreemptMode=SUSPEND,GANG.
-- Completely disable logging of sched/wiki and sched/wiki2 (Maui & Moab)
message traffic unless DebugFlag=Wiki is configured.
-- Change scontrol show job info: ReqProcs (number of processors requested)
is replaced by NumProcs (number of processors requested or actually
allocated) and ReqNodes (number of nodes requested) is replaced by
NumNodes (number of nodes requested or actually allocated).

Danny Auble
committed
-- Fixed issue when max nodes wasn't specified and was later set by limit
to not request that as the actual maximum.
-- Move job preemption (for requeue, checkpoint and kill modes only) out of
gang scheduling module. Make identification of preemptable jobs an argument
to the select_g_job_test function rather than calling preempt plugin from
the select plugin. Make output of srun --test-only option include a list
of preempted job IDs.
-- Better record keeping for front end systems when registering.
-- Enable memory allocation logic for jobs step (i.e. allocate resources
within the job's memory allocation and enforce limits).
-- sview and "scontrol show config" now report as SLURM_VERSION the version
of slurmctld rather than that of the command.
-- Change SuspendTime configuration parameter from 16-bits to 32-bits.
-- Add environment variable support to sattach, salloc, sbatch and srun
to permit user control over exit codes so application exit codes can be
distiguished from those generated by SLURM. SLURM_EXIT_ERROR specifies the
exit code when a SLURM error occurs. SLURM_EXIT_IMMEDIATE specifies the
exit code when the --immediate option is specified and resources are not
available. Any other non-zero exit code would be that of the application
run by SLURM.
-- Added a Quality of Service (QOS) html page.
-- In sched/wiki2, JOBWILLRUN command, add support for identification of
preemptable and preempted jobs (both new and old format of commands are
supported).
-- Remove contribs/python/hostlist files. Download the materials as needed
directly from http://www.nsc.liu.se/~kent/python-hostlist.
-- BLUEGENE - Preemption now works on bluegene systems
-- For salloc, sbatch and srun commands, ignore _maximum_ values for
--sockets-per-node, --cores-per-socket and --threads-per-core options.
Remove --mincores, --minsockets, --minthreads options (map them to
minimum values of -sockets-per-node, --cores-per-socket and
--threads-per-core for now).

Danny Auble
committed

Moe Jette
committed
* Changes in SLURM 2.1.0-pre4
=============================
-- Move processing of node configuration information in slurm.conf and
topology information in topology.conf from slurmctld into common and load
that information into slurmd. Use it to set environment variables for jobs
SLURM_TOPOLOGY_ADDR and SLURM_TOPOLOGY_ADDR_PATTERN describing the network
topology for each task. Based upon patch from Mattheu Hautreux (CEA).
-- Correction in computing a job's TotalProcs value when ThreadsPerCore>1 and
allocating by cores or sockets.

Moe Jette
committed
* Changes in SLURM 2.1.0-pre3
=============================
-- Removed sched/gang plugin and moved the logic directly into the slurmctld
daemon so that job preemption and gang scheduling can be used with the
sched/backfill plugin. Added configuration parameter:
PreemptMode=gang|off|suspend|cancel|requeue|checkpoint
to enable/disable gang scheduling and job preemption logic (both are
disabled by default).
(NOTE: There are some problems with memory management which could prevent a
job from starting when memory would be freed by a job being requeued or
otherwise removed, these are being worked on)
-- Added PreemptType configuration parameter to identify preemptable jobs.
Former users of SchedType=sched/gang should set SchedType=sched/backfill,
PreemptType=preempt/partition_prio and PreemptMode=gang,suspend. See
web and slurm.conf man page for other options.

Moe Jette
committed
PreemptType=preempt/qos uses Quality Of Service information in database.
-- In select/linear, optimize job placement across partitions.
-- If the --partition option is used with the sinfo or squeue command then
print information about even hidden partitions.
-- Replaced misc cpu allocation members in job_info_t with select_job_res_t
which will only be populated when requested (show_flags & SHOW_DETAIL)
-- Added a --detail option to "scontrol show job" to display the cpu/mem
allocation info on a node-by-node basis.

Danny Auble
committed
-- Added logic to give correct request uid for individual steps that
were cancelled.
-- Created a spank_get_item() option (S_JOB_ALLOC_MEM) that conveys the memory
that the select/cons_res plugin has allocated to a job.
-- BLUEGENE - blocks in error state are now handled correctly in accounting.
-- Modify squeue to print job step information about a specific job ID using
the following syntax: "squeue -j <job_id> -s".
-- BLUEGENE - scontrol delete block and update block can now remove blocks
on dynamic laid out systems.
-- BLUEGENE - Vastly improve Dynamic layout mode algorithm.
-- Address some issues for SLURM support of Solaris.

Danny Auble
committed
-- Applied patch from Doug Parisek (Doug.Parisek@bull.com) for speeding up
start of sview by delaying to creation of tooltips until requested.
-- Changed GtkToolTips to GtkToolTip for newer versions of GTK.
-- Applied patch from Rod Schultz (Rod.Schultz@Bull.com) that eliminates
ambiguity in the documentation over use of the terms "CPU" and "socket".
-- Modified get_resource_arg_range() to return full min/max values when input
string is null. This fixes the srun -B option to function as documented.
-- If the job, node, partition, reservation or trigger state file is missing
or too small, automatically try using the previously saved state (file
name with ".old" suffix).
-- Set a node's power_up/configuring state flag while PrologSlurmctld is
running for a job allocated to that node.
-- If PrologSlurmctld has a non-zero exit code, requeue the job or kill it.
-- Added sacct ability to use --format NAME%LENGTH similar to sacctmgr.
-- Improve hostlist logic for multidimensional systems.
-- The pam_slurm Pluggable Authentication Module for SLURM previously
distributed separately has been moved within the main SLURM distribution
and is packaged as a separate RPM.
-- Added configuration parameter MaxTasksPerNode.
-- Remove configuration parameter SrunIOTimeout.
-- Added functionality for sacctmgr show problems. Current problems include
Accounts/Users with no associations, Accounts with no users or subaccounts
attached in a cluster, and Users with No UID on the system.
-- Added new option for sacctmgr list assoc and list cluster WOLimits. This
gives a smaller default format without the limit information. This may
be the new default for list assocations and list clusters.
-- Users are now required to have an association with there default account.
Sacctmgr will now complain when you try to modify a users default account
which they are not associated anywhere.
-- Fix select/linear bug resulting in run_job_cnt underflow message if a
suspended job is cancelled.
-- Add test for fsync() error for state save files. Log and retry as needed.
-- Log fatal errors from slurmd and slurmctld to syslog.
-- Added error detection and cleanup for the case in which a compute node is
rebooted and restarts its slurmd before its "down" state is noticed.
-- BLUEGENE systems only - remove vestigal start location from jobinfo.
-- Add reservation flag of "OVERLAP" to permit a new reservation to use
nodes already in another reservation.
-- Fix so "scontrol update jobid=# nice=0" can clear previous nice value.
-- BLUEGENE - env vars such as SLURM_NNODES, SLURM_JOB_NUM_NODES, and
SLURM_JOB_CPUS_PER_NODE now reference cnode counts instead of midplane
counts. SLURM_NODELIST still references midplane names.
-- Added qos support to salloc/sbatch/srun/squeue
-- Added to scancel the ability to select jobs by account and qos
-- Recycled the "-A" argument indicate "account" for all the commands that
accept the --account argument (srun -A to allocate is no longer supported.)
-- Change sbatch response from "sbatch: Submitted batch job #" written to
stderr to "Submitted batch job #" written to stdout.
-- Made shutdown and cleanup a little safer for the mvapich and mpich1_p4
plugins.
-- QOS support added with limits, priority and preemption
(no documentation yet).
-- If a slurmd does not have a node listed in it's slurm.conf (slurm.conf's
should be kept the same on all nodes) an error message is printed in the
slurmctld log along with the message already being printed in the slurmd
log for easier debugging.
* Changes in SLURM 2.1.0-pre2
=============================
-- Added support for smap to query off node name for display.
-- Slurmdbd modified to set user ID and group ID to SlurmUser if started as
user root.
-- Configuration parameter ControlMachine changed to accept multiple comma-
separated hostnames for support of some high-availability architectures.

Danny Auble
committed
-- ALTERED API CALL slurm_get_job_steps 0 has been changed to NO_VAL for both
job and step id to recieve all jobs/steps. Please make adjustments to
your code.
-- salloc's --wait=<secs> option deprecated by --immediate=<secs> option to
match the srun command.
-- Add new slurmctld list for node features with node bitmaps for simplified
scheduling logic.

Moe Jette
committed
-- Multiple features can be specified when creating a reservation. Use "&"
(AND) or "|" (OR) separators between the feature names.
-- Changed internal node name caching so that front-end mode would work with
multiple lines of node name definitions.
-- Add node state flag for power-up/configuring. Represented by "#" suffix
on the node state name (e.g. "ALLOCATED#") for command output.
-- Add CONFIGURING/CF job state flag for node power-up/configuring.
-- Modify job step cancel logic for scancel and srun (on reciept of SIGTERM
or three SIGINT) to immediately send SIGKILL to spawned tasks. Previous
logic would send SIGCONT, SIGTERM, wait KillWait seconds, SIGKILL.
-- Created a spank_get_item() option (S_JOB_ALLOC_CORES) that conveys the cpus
that the select/cons_res plugin has allocated to a job.
-- Improve sview performance (outrageously) on very large machines.
-- Add support for licenses in resource reservation.
-- BLUEGENE - Jobs waiting for a block to boot will now be in Configuring
state.
-- bit_fmt now does not return brackets surrounding any set of data.
* Changes in SLURM 2.1.0-pre1
=============================
-- Slurmd notifies slurmctld of node boot time to better clean up after node
reboots.
-- Slurmd sends node registration information repeatedly until successful
transmit.
-- Change job_state in job structure to dedicate 8-bits to state flags.
Added macros to get state information (IS_JOB_RUNNING(job_ptr), etc.)
-- Added macros to get node state information (IS_NODE_DOWN(node_ptr), etc).
-- Added support for Solaris. Patch from David Hoppner.
-- Rename "slurm-aix-federation-<version>.rpm" to just
"slurm-aix-<version>.rpm" (federation switch plugin may not be present).

Moe Jette
committed
-- Eliminated the redundant squeue output format and sort options of
"%o" and "%b". Use "%D" and "%S" formats respectively. Also eliminated

Moe Jette
committed
"%X" and "%Y" and "%Z" formats. Use "%z" instead.
-- Added mechanism for SPANK plugins to set environment variables for
Prolog, Epilog, PrologSLurmctld and EpilogSlurmctld programs using
the functions spank_get_job_env, spank_set_job_env, and
spank_unset_job_env. See "man spank" for more information.
-- Completed the work to begun in 2.0.0 to standardize on using '-Q' as the
--quiet flag for all the commands.

Danny Auble
committed
-- BLUEGENE - sinfo and sview now display correct cpu counts for partitions
-- Cleaned up the cons_res plugin. It now uses a ptr to a part_record
instead of having to do strcmp's to find the correct one.
-- Pushed most all the plugin specific info in src/common/node_select.c
into the respected plugin.
-- BLUEGENE - closed some corner cases where a block could had been removed
while a job was waiting for it to become ready because an underlying
part of the block was put into an error state.
-- Modify sbcast logic to prevent a user from moving files to nodes they
have not been allocated (this would be possible in previous versions
only by hacking the sbcast code).
-- Add contribs/sjstat script (Perl tool to report job state information).
Put into new RPM: sjstat.
-- Add sched/wiki2 (Moab) JOBMODIFY command support for VARIABLELIST option
to set supplemental environment variables for pending batch jobs.
-- BLUEGENE - add support for scontrol show blocks.
-- Added support for job step time limits.
* Changes in SLURM 2.0.10
=========================
* Changes in SLURM 2.0.9
========================
-- When running the mysql plugin natively MUNGE errors are now eliminated
when sending updates to slurmctlds.
-- Check to make sure we have a default account before looking to
fill in default association.
-- Fix to make it so sched/wiki2 can modify a job's partition or hostlist of
non-pending jobs.
-- Applied slurmctld prolog bug fix from Dennis Leepow to backfill.c
-- fixed quite a few typos (needed for debian packages)
-- make it so slurmctld will core dump without --enable-debug set
-- Fix issue when doing a rollup on reservations before a cluster has been
added.
-- MySQL plugin - When doing archiving end time is now decreased by 1
which should be more correct.
-- BLUEGENE - Fixed issue where --no-rotate didn't work correctly on job
submissions.
-- BLUEGENE - made the buffer longer when submitting jobs to get the entire
line. Previously the line could be shortened prematurely.
-- BLUEGENE - Fix to make sure we don't erroneously set a connection type
to SMALL.
-- Type cast a negative uint64_t to int64_t to avoid confusion when doing
arithmetic with it in accounting dealing with over commit time.
* Changes in SLURM 2.0.8
========================
-- BLUEGENE - added dub2 of stderr to put error messages sent from underlying
libraries of the bridge api to the bridgeapi.log
-- Fixed issue with sacctmgr when modifing a user and specifying 'where'
after giving the user name also.
-- -L, --allclusters now works with sacct
-- Modified job table to use 32bit u/gids for those with ids greater
than 16 bits.
-- Made minor changes for slurm to compile cleanly under gcc 4.4.1
-- Fixed issue with task/affinity when an allocation would run multiple sruns
with the --exclusive flag in an allocation with more than 1 node.
Previously when the first node was filled up no tasks would ever run
on the other nodes.
-- Fixed sview and sacct to display correct run time and suspend time when
job has been suspended.
-- Applied patch from Mark Grondona that fixes the validation of the
PluginDir to support the colon separated list of directories as documented.
-- BLUEGENE - squeue -o %R now prints more readable info for small blocks
-- sacct - fixed garbage being printed out on uninitialized variable.
-- Fix for mysql plugin when used without slurmdbd to register the
slurmctld properly.
-- Fix for mysql plugin putting correct hostnames in for running steps.
* Changes in SLURM 2.0.7
========================
-- Fix bug in select/cons_res when nodes are configured in more than one
partition and those partitions have different priorities and sched/gang
is not configured. CPUs were previously over-allocated.
-- Fix core of smap when specifying -i option with invalid argument.
-- Fix issue when using srun --test-only to not put an entry of test
job into accounting.
-- For OpenMPI use of SLURM reserved ports. If any of the tasks fails to
acquire a reserved port and has an exit code of 108 then srun will
kill all remaining tasks and respawn the tasks. Previous code waited
for tasks to exit.
-- MySQL plugin - When doing archiving we now get a correct end time.
Previously it would grab an extra day to archive.
-- BLUEGENE - Handle initial state correctly, previously was setting initial
state to IDLE if UNKNOWN which would make it not set a registration
message to accounting, which could lead to nodes not being listed as up
when they really were.
-- Fixed buffer size issue with scontrol show hostlist.
-- Fixed issue with copy in smap -Dc previously command wouldn't work.
-- BLUEGENE - Update documentation about small blocks in the bluegene.conf
file.
-- In sched/wiki plugin (for Maui) fix possible message truncation on very
large cluster.
-- BLUEGENE - Fix for handling undocumented Deallocating to Configuring to
Free block transition state.
-- BLUEGENE - Fix for overlap mode loading blocks when midplane is in an
error state.
-- Add range check for SuspendTime configuration parameter.
-- Moved unzipped python-hostname tarball out and the tarball in.
-- BLUEGENE - Patched memory leak when running state test.
-- BLUEGENE - fixed slow down generated by slow call rm_get_BG
and polling thread.
* Changes in SLURM 2.0.6
========================
-- Fixed seg fault when "scontrol listpids" is invoked for a specific job step
on a node on which a stepd is not running.
-- Fix bug in sched/backfill which could result in invalid memory reference
when trying to schedule jobs submitted with --exclude option.
* Changes in SLURM 2.0.5
========================
-- BLUEGENE - Added support for emulating systems with a X-dimension of 4.
-- BLUEGENE - When a nodecard goes down on a non-Dynamic system SLURM will
now only drain blocks under 1 midplane, if no such block exists then SLURM
will drain the entire midplane and not mark any block in error state.
Previously SLURM would drain every overlapping block of the nodecard
making it possible for a large block to make other blocks not work since
they overlap some other part of the block that really isn't bad.
-- BLUEGENE - Handle L3 errors on boot better.
-- Don't revoke a pending batch launch request from the slurmctld if the
job is immediately suspended (a normal event with gang scheduling).
-- BLUEGENE - Fixed issue with restart of slurmctld would allow error block
nodes to be considered for building new blocks when testing if a job would
run. This is a visual bug only, jobs would never run on new block, but
the block would appear in slurm tools.
-- Better responsiveness when starting new allocations when running with the
slurmdbd.
-- Fixed race condition when reconfiguring the slurmctld and using the
consumable resources plugin which would cause the controller to core.

David J. Bremer
committed
-- Fixed race condition that sometimes caused jobs to stay in completing
state longer than necessary after being terminated.
-- Fixed issue where if a parent account has a qos added and then a child
account has the qos removed the users still get the qos.
-- BLUEGENE - New blocks in dynamic mode will only be made in the system
when the block is actually needed for a job, not when testing.
-- BLUEGENE - Don't remove larger block used for small block until job starts.
-- Add new squeue output format and sort option of "%L" to print a job's time
left (time limit minus time used).
-- BLUEGENE - Fixed draining state count for sinfo/sview.
-- Fix for sview to not core when viewing nodes allocated to a partition
and the all jobs finish.
-- Fix cons_res to not core dump when finishing a job running on a
defunct partition.
-- Don't require a node to have --ntasks-per-node CPUs for use when the
--overcommit option is also used.
-- Increase the maximum number of tasks which can be launched by a job step
per node from 64 to 128.
-- sview - make right click on popup window title show sorted list.
-- scontrol now displays correct units for job min memory and min tmp disk.
-- better support for salloc/sbatch arbitrary layout for setting correct
SLURM_TASKS_PER_NODE
-- Env var SLURM_CPUS_ON_NODE is now set correctly depending on the
FastSchedule configuration parameter.
-- Correction to topology/3d_torus plugin calculation when coordinate value
exceeds "9" (i.e. a hex value).
-- In sched/wiki2 - Strip single and double quotes out of a node's reason
string to avoid confusing Moab's parser.
-- Modified scancel to cancel any pending jobs before cancelling any other
-- Updated sview config info
-- Fix a couple of bugs with respect to scheduling with overlapping
reservations (one with a flag of "Maintenance").
-- Fix bug when updating a pending job's nice value after explicitly setting
it's priority.
-- We no longer add blank QOS'
-- Fix task affinity for systems running fastschedule!=0 and they have less
resources configured than in existence.
-- Slurm.pm loads without warning now on AIX systems
-- modified pmi code to do strncpy's on the correct len
-- Fix for filling in a qos structure to return SLURM_SUCCESS on success.
-- BLUEGENE - Added SLURM_BG_NUM_NODES with cnode count of allocation,
SLURM_JOB_NUM_NODES represents midplane counts until 2.1.
-- BLUEGENE - Added fix for if a block is in error state and the midplane
containing the block is also set to drain/down. This previously
prevented dynamic creation of new blocks when this state was present.
-- Fixed bug where a users association limits were not enforced, only
parent limits were being enforced.
-- For OpenMPI use of SLURM reserved ports, reserve a count of ports equal to
the maximum task count on any node plus one (the plus one is a correction).
-- Do not reset SLURM_TASKS_PER_NODE when srun --preserve-env option is used
(needed by OpenMPI).
-- Fix possible assert failure in task/affinity if a node is configured with
more resources than physically exist.
-- Sview can now resize columns.
-- Avoid clearing a drained node's reason field when state is changed from
down (i.e. returned to service). Note the drain state flag stays set.
* Changes in SLURM 2.0.4
========================
-- Permit node suspend/resume logic to be enabled through "scontrol reconfig"
given appropriate changes to slurm configuration file.
-- Check for return codes on functions with warn_unused_result set.
-- Fix memory leak in getting step information (as used by squeue -s).
-- Better logging for when job's request bad output file locations.
-- Fix issue where if user specified non-existant file to write to slurmstepd
will regain privileges before sending batch script ended to the controller.
-- Fix bug when using the priority_multifactor plugin with no associations
yet.
-- BLUEGENE - we no longer check for the images to sync state. This was
needed long ago when rebooting blocks wasn't a possibility and should
had been removed when that functionality was available.
-- Added message about no connection with the database for sacctmgr.
-- On BlueGene, let srun or salloc exit on SIGINT if slurmctld dies while
booting its block.
-- In select/cons_res fix bug that could result in invalid memory pointer
if node configurations in slurm.conf contains 8 or more distinct
socket/core/thread counts.
-- Modify select/cons_res to recognize updated memory size upon node startup
if FastSchedule=0.
-- Fixed bug if not enforcing associations, but running with them and the
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
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).
-- BLUEGENE - fix for sinfo/sview for displaying proper node count for nodes
in draining state.
-- Fix for sview when viewing a certain part of a group (like 1 job) so it
doesn't core when the part is gone.
-- BLUEGENE - Changed order of SYNC's to be on the front of the list to
avoid having a job terminated with a TERM before the SYNC of the
job happens.
-- Validate configured PluginDir value is a valid directory before trying to
use it.
-- Fix to resolve agent_queue_request symbol from some checkpoint plugins.
-- Fix possible execve error for sbatch script read from stdin.
-- Modify handling of user ID/name and group ID/name in the slurm.conf file
to properly handle user names that contain all digits. Return error code
from uid_from_string() and gid_from_string() functions rather than a uid of
-1, which might be a valid uid or gid on some systems.
-- Fix in re-calcuation of job priorities due to DOWN or DRAINED nodes.
* Changes in SLURM 2.0.3
========================
-- Add reservation creation/update flag of Ignore_Jobs to enable the creation
of a reservation that overlaps jobs expected to still be running when
the reservation starts. This would be especially useful to reserve all
nodes for system maintenence without adjusting time limits of running
jobs before creating the reservation. Without this flag, nodes allocated
jobs expected to running when the reservation begins can not be placed
into a reservation.
-- In task/affinity plugin, add layer of abstraction to logic translating
block masks to physical machine masks. Patch from Matthieu Hautreux, CEA.
-- Fix for setting the node_bitmap in a job to NULL if the job does not
start correctly when expected to start.
-- Fixed bug in srun --pty logic. Output from the task was split up
arbitrarily into stdout and stderr streams, and sometimes was printed
out of order.
-- If job requests minimum and maximum node count range with select/cons_res,
try to satisfy the higher value (formerly only allocated the minimum).
-- Fix for checking for a non-existant job when querying steps.
-- For job steps with the --exclusive option, base initial wait time in
partly upon the process ID for better performance with many job steps
started at the same time. Maintain exponential back-off as needed.
-- Fix for correct step ordering in sview.
-- Support optional argument to srun and salloc --immediate option. Specify
timeout value in seconds for job or step to be allocated resources.
* Changes in SLURM 2.0.2
========================
-- Fix, don't remove job details when a job is cancelled while pending.
-- Do correct type for mktime so garbage isn't returned on 64bit systems
for accounting archival.
-- Better checking in sacctmgr to avoid infinite loops.
-- Fix minor memory leak in fake_slurm_step_layout_create()
-- Fix node weight (scheduling priority) calculation for powered down
nodes. Patch from Hongjia Cao, NUDT.
-- Fix node suspend/resume rate calculations. Patch from Hongjia Cao, NUDT.
-- Change calculations using ResumeRate and SuspendRate to provide higher
resolution.
-- Log the IP address for incoming messages having an invalid protocol
version number.
-- Fix for sacct to show jobs that start the same second as the sacct
command is issued.
-- BLUEGENE - Fix for -n option to work on correct cpu counts for each
midplane instead of treating -n as a c-node count.
-- salloc now sets SLURM_NTASKS_PER_NODE if --ntasks-per-node option is set.
-- Fix select/linear to properly set a job's count of allocated processors
(all processors on the allocated nodes).
-- Fix select/cons_res to allocate proper CPU count when --ntasks-per-node
option is used without a task count in the job request.
-- Insure that no node is allocated to a job for which the CPU count is less
than --ntasks-per-node * --cpus-per-task.
-- Correct AllocProcs reported by "scontrol show node" when ThreadsPerCore
is greater than 1 and select/cons_res is used.
-- Fix scontrol show config for accounting information when values are
not set in the slurm.conf.
-- Added a set of SBATCH_CPU_BIND* and SBATCH_MEM_BIND* env variables to keep
jobsteps launched from within a batch script from inheriting the CPU and
memory affinity that was applied to the batch script. Patch from Matthieu
Hautreux, CEA.
-- Ignore the extra processors on a node above configured size if either
sched/gang or select/cons_res is configured.
-- Fix bug in tracking memory allocated on a node for select/cons_res plugin.
-- Fixed a race condition when writing labelled output with a file per task
or per node, which potentially closed a file before all data was written.
-- BLUEGENE - Fix, for if a job comes in spanning both less than and
over 1 midplane in size we check the connection type appropriately.
-- Make sched/backfill properly schedule jobs with constraints having node
counts. NOTE: Backfill of jobs with constraings having exclusive OR
operators are not fully supported.
-- If srun is cancelled by SIGINT, set the job state to cancelled, not
failed.
-- BLUEGENE - Fix, for if you are setting an subbp into an error mode
where the subbp stated isn't the first ionode in a nodecard.
-- Fix for backfill to not core when checking shared nodes.
-- Fix for scontrol to not core when hitting just return in interactive mode.
-- Improve sched/backfill logic with respect to shared nodes (multiple jobs
per node).
-- In sched/wiki (Maui interface) add job info fields QOS, RCLASS, DMEM and
TASKSPERNODE. Patch from Bjorn-Helge Mevik, University of Oslo.
* Changes in SLURM 2.0.1
========================
-- Fix, truncate time of start and end for job steps in sacct.
-- Initialize all messages to slurmdbd. Previously uninitialized string could
cause slurmctld to fail with invalid memory reference.
-- BLUEGENE - Fix, for when trying to finish a torus on a block already
visited. Even though this may be possible electrically this isn't valid
in the under lying infrastructure.
-- Fix, in mysql plugins change mediumints to int to support full 32bit
numbers.
-- Add sinfo node state filtering support for NO_RESPOND, POWER_SAVE, FAIL,
MAINT, DRAINED and DRAINING states. The state filter of DRAIN still maps
to any node in either DRAINED or DRAINING state.
-- Fix reservation logic when job requests specific nodes that are already
in some reservation the job can not use.
-- Fix recomputation of a job's end time when allocated nodes which are
being powered up. The end time would be set in the past if the job's
time limit was INFINITE, resulting in it being prematurely terminated.
-- Permit regular user to change the time limit of his pending jobs up to
the partition's limit.
-- Fix "-Q" (quiet) option for salloc and sbatch which was previously
ignored.
-- BLUEGENE - fix for finding odd shaped blocks in dynamic mode.
-- Fix logic supporting SuspendRate and ResumeRate configuration parameters.
Previous logic was changing state of one too many nodes per minute.
-- Save new reservation state file on shutdown (even if no changes).
-- Fix, when partitions are deleted the sched and select plugins are notified.
-- Fix for slurmdbd to create wckeyid's when they don't exist
-- Fix linking problem that prevented checkpoint/aix from working.
========================

Danny Auble
committed
-- Fix for bluegene systems to be able to create 32 node blocks with only
16 psets defined in dynamic layout mode.
-- Improve srun_cr handling of child srun forking. Patch from Hongjia Cao,
NUDT.
-- Configuration parameter ResumeDelay replaced by SuspendTimeout and
ResumeTimeout.
-- BLUEGENE - sview/sinfo now displays correct cnode numbers for drained nodes
or blocks in error state.
-- Fix some batch job launch bugs when powering up suspended nodes.
-- Added option '-T' for sacct to truncate time of start and end and set
default of --starttime to Midnight of current day.
* Changes in SLURM 2.0.0-rc2
============================

Danny Auble
committed
-- Change fanout logic to start on calling node instead of first node in
message nodelist.
-- Fix bug so that smap builds properly on Sun Constellation system.
-- Filter white-space out from node feature specification.
-- Fixed issue with duration not being honored when updating start time in
reservations.
-- Fix bug in sched/wiki and sched/wiki2 plugins for reporting job resource
allocation properly when node names are configured out of sort order
with more than one numeric suffix (e.g. "tux10-1" is configured after
"tux5-1").
-- Avoid re-use of job_id (if specified at submit time) when the existing
job is in completing state (possible race condition with Moab).
-- Added SLURM_DISTRIBUTION to env for salloc.
-- Add support for "scontrol takeover" command for backup controller to
assume control immediately. Patch from Matthieu Hautreux, CEA.
-- If srun is unable to communicate with the slurmd tasks are now marked as
failed with the controller.

Danny Auble
committed
-- Fixed issues with requeued jobs not being accounted for correctly in
the accounting.
-- Clear node's POWER_SAVE flag if configuration changes to one lacking a
ResumeProgram.
-- Extend a job's time limit as appropriate due to delays powering up nodes.
-- If sbatch is used to launch a job step within an existing allocation (as
used by LSF) and the required node is powered down, print the message
"Job step creation temporarily disabled, retrying", sleep, and retry.
-- Configuration parameter ResumeDelay added to control how much time must
after a node has been suspended before resume it (e.g. powering it back
up).
-- Fix CPU binding for batch program. Patch from Matthieu Hautreux, CEA.
-- Fix for front end systems non-responding nodes now show up correctly in
sinfo.
-- Fix bug in preservation of advanced reservations when slurmctld restarts.
-- Updated perlapi to match correctly with slurm.h structures
-- Do not install the srun command on BlueGene systems (mpirun must be used to
launch tasks).
-- Corrections to scheduling logic for topology/tree in configurations where
nodes are configured in multiple leaf switches.
-- Patch from Matthieu Hautreux for backup mysql deamon support.
-- Changed DbdBackup to DbdBackupHost for slurmdbd.conf file
-- Add support for spank_strerror() function and improve error handling in
general for SPANK plugins.
-- Added configuration parameter SrunIOTimeout to optionally ping srun's tasks
for better fault tolerance (e.g. killed and restarteed SLURM daemons on
compute node).
-- Add slurmctld and slurmd binding to appropriate communications address
based upon NodeAddr, ControllerAddr and BackupAddr configuration
parameters. Based upon patch from Matthieu Hautreux, CEA.
NOTE: Fails when SlurmDBD is configured with some configurations.
NOTE: You must define BIND_SPECIFIC_ADDR to enable this option.
-- Avoid using powered down nodes when scheduling work if possible.
Fix possible invalid memory reference in power save logic.
* Changes in SLURM 1.4.0-pre13
==============================
Loading
Loading full blame...