RELEASE NOTES FOR SLURM VERSION 18.08
16 August 2018

IMPORTANT NOTES:
If using the slurmdbd (Slurm DataBase Daemon) you must update this first.

NOTE: If using a backup DBD you must start the primary first to do any
database conversion, the backup will not start until this has happened.

The 18.08 slurmdbd will work with Slurm daemons of version 17.02 and above.
You will not need to update all clusters at the same time, but it is very
important to update slurmdbd first and having it running before updating
any other clusters making use of it.

Slurm can be upgraded from version 17.02 or 17.11 to version 18.08 without loss
of jobs or other state information. Upgrading directly from an earlier version
of Slurm will result in loss of state information.

If using SPANK plugins that use the Slurm APIs, they should be recompiled when
upgrading Slurm to a new major release.

NOTE FOR THOSE UPGRADING SLURMDBD: The database conversion process from
      SlurmDBD 16.05 or 17.02 may not work properly with MySQL 5.1 or 5.5
      (as was the default version for RHEL 6). Upgrading to a newer version of
      MariaDB or MySQL is strongly encouraged to prevent this problem.

NOTE: The slurmctld is now set to fatal if there are any problems with
      any state files.  To avoid this use the new '-i' flag.

NOTE: systemd services files are installed automatically, but not enabled.
      You will need to manually enable them on the appropriate systems:
      - Controller: systemctl enable slurmctld
      - Database: systemctl enable slurmdbd
      - Compute Nodes: systemctl enable slurmd

NOTE: If you are upgrading with any jobs from 14.03 or earlier
      (i.e. quick upgrade from 14.03 -> 15.08 -> 17.02) you will need
      to wait until after those jobs are gone before you upgrade to 17.02
      or 17.11 or 18.08.

NOTE: If you interact with any memory values in a job_submit plugin, you will
      need to test against NO_VAL64 instead of NO_VAL, and change your printf
      format as well.

NOTE: SPANK options handled in local and allocator contexts should be able to
      handle being called multiple times. An option could be set multiple times
      through environment variables and command line options. Environment
      variables are processed first.

NOTE: IBM BlueGene/Q support has been removed.

NOTE: Cray/ALPS is deprecated and will be removed in the 19.05 release.
      You must add the --enable-deprecated option to configure to build
      for this target.

NOTE: Built-in BLCR support is deprecated, no longer built automatically, and
      will be removed in 19.05. You must add --with-blcr and --enable-deprecated
      options to configure to build this plugin.

NOTE: srun will now only read in the environment variables SLURM_JOB_NODES and
      SLURM_JOB_NODELIST instead of SLURM_NNODES and SLURM_NODELIST.  These
      latter variables have been obsolete for some time please update any
      scripts still using them.

NOTE: squeue will now print "UID" as the header for the User ID field;
      corresponding to the %U type specification.

HIGHLIGHTS
==========
 -- Add support for parenthesis in a job's constraint specification to group
    like options together. For example
    --constraint="[(knl&snc4&flat)*4&haswell*1]" might be used to specify that
    four nodes with the features "knl", "snc4" and "flat" plus one node with
    the feature "haswell" are required.
 -- Enable jobs with zero node count for creation and/or deletion of persistent
    burst buffers.
 -- Add "scontrol show dwstat" command to display Cray burst buffer status.
 -- Heterogeneous job steps allocations supported with
    * Open MPI (with Slurm's PMI2 and PMIx plugins) and
    * Intel MPI (with Slurm's PMI2 plugin)
    * No support for Cray systems at this time.
 -- Add Slurm configuration file check logic using "slurmctld -t" command.
 -- Disable local PTY output processing when using 'srun --unbuffered'. This
    prevents the PTY subsystem from inserting extraneous \r characters into
    the output stream.
 -- Append ", with requeued tasks" to job array "end" emails if any tasks in the
    array were requeued. This is a hint to use "sacct --duplicates" to see the
    whole picture of the array job.
 -- The default AuthType for slurmdbd is not "auth/munge".
 -- Changed slurmd.service file to include remote-fs.target in After option.

RPMBUILD CHANGES
================

CONFIGURATION FILE CHANGES (see man appropriate man page for details)
=====================================================================
 -- Configuration parameters "ControlMachine", "ControlAddr", "BackupController"
    and "BackupAddr" replaced by an ordered list of "SlurmctldHost" records
    with the optional address appended to the name enclosed in parenthesis.
    For example: "SlurmctldHost=head(12.34.56.78)". An arbitrary number of
    backup servers can be configured.
 -- Add "GetSysStatus" option to burst_buffer.conf file. For burst_buffer/cray
    this would indicate the location of the "dwstat" command.
 -- Add node and partition configuration options of "CpuBind" to control default
    task binding. Modify the scontrol to report and modify these parameters.
 -- Add "NumaCpuBind" option to knl.conf file to automatically change a node's
    CpuBind parameter based upon changes to a node's NUMA mode.
 -- Remove support for "ChosLoc" configuration parameter.
 -- Add SlurmctldParameters option allow_user_triggers to enable user-defined
    triggers. User defined triggers are now disabled by default.
 -- Add ResumeFailProgram slurm.conf option to specify a program that is called
    when a node fails to respond by ResumeTimeout.
 -- ConstrainKmemSpace is now disabled by default. In Linux kernel version 3,
    early versions of kernel version 4, and RedHat/CentOS 6 and 7, using
    memory.kmem.limit_in_bytes leaks slab caches, which eventually causes the
    machine to be unable to create new cgroups.
 -- SchedulerParameters' "whole_pack" option has been renamed to "whole_hetjob",
    although "whole_pack" will still be supported for backward compatibility.

COMMAND CHANGES (see man pages for details)
===========================================
 -- Add sbatch "--batch" option to identify features required on batch node.
    For example "sbatch --batch=haswell ...".
 -- Report cgroup and NodeFeatures plugin configuration with scontrol and
    sview commands.
 -- Remove the "CPUErr" value from the slurm_print_node_table() API call
    ("scontrol show node"). This was always zero for non-BlueGene systems.

OTHER CHANGES
=============

API CHANGES
===========

Changed members of the following structs
========================================

Added members to the following struct definitions
=================================================

Added the following struct definitions
======================================

Removed the following structs
=============================
 -- Removed block_job_info_t, block_info_t, block_info_msg_t.

Removed members from the following struct definitions
=====================================================
 -- Removed node_scaling from node_info_msg_t.
 -- Removed from job_desc_msg_t: conn_type, geometry, rotate, blrtsimage,
    linuximage, mloaderimage, ramdiskimage.

Changed the following enums and #defines
========================================

Added the following API's
=========================

Changed the following API's
============================
 -- Remove node_scaling argument to slurm_print_node_table() and
    slurm_sprint_node_table().

Removed the following API's
===========================
 -- Removed slurm_xslurm_strerrorcat() function.
 -- Removed slurm_xstrstrip() function.
 -- Removed slurm_free_block_info_msg(), slurm_init_update_block_msg(),
    slurm_load_block_info(), slurm_print_block_info(),
    slurm_print_block_info_msg(), slurm_sprint_block_info(),
    slurm_update_block().
 -- Removed slurm_get_select_jobinfo().
