We are pleased to announce the availability of Slurm version 23.02.2 and Slurm version 22.05.9.
The 23.02.2 release includes a number of fixes to Slurm stability, including a fix for a regression in 23.02 that caused openmpi mpirun to fail to launch tasks. It also includes two functional changes: Don't update the cron job tasks if the whole crontab file is left untouched after opening it with "scrontab -e", and sort dynamic nodes and include them in topology after scontrol reconfigure or a slurmctld restart. The 22.05.9 release includes a fix for a regression in 22.05.7 that prevented slurmctld from connecting to an srun running outside a compute node, and a fix to the upgrade process to 22.05 from 21.08 or 20.11 where pending jobs that had requested --mem-per-cpu could be killed due to incorrect memory limit enforcement. Slurm can be downloaded from https://www.schedmd.com/downloads.php . - Marshall -- Marshall Garey Release Management, Support, and Development SchedMD LLC - Commercial Slurm Development and Support
* Changes in Slurm 23.02.2 ========================== -- Fix regression introduced with the migration to interfaces which caused sshare to core dump. Sshare now initialized the priority context correctly when calculating with PriorityFlags=NO_FAIR_TREE. -- Fix IPMI DCMI sensor initialization. -- For the select/cons_tres plugin, improve the best effort GPU to core binding, for requests with per job task count (-n) and GPU (--gpus) specification. -- scrontab - don't update the cron job tasks if the whole crontab file is left untouched after opening it with "scrontab -e". -- mpi/pmix - avoid crashing when running PMIx v5.0 branch with shmem support. -- Fix building switch topology after a reconfig with the correct nodes. -- Allow a dynamic node to register with a reason, using --conf, when the state is DOWN or DRAIN. -- Fix slurmd running tasks before RPC Prolog is run. -- Fix slurmd deadlock iff the controller were to give a bad alias_list. -- slurmrestd - correctly process job submission field "exclusive" with boolean True or False. -- slurmrestd - correctly process job submission field "exclusive" with strings "true" or "false". -- slurmctld/step_mgr - prevent non-allocatable steps from decrementing values that weren't previously incremented when trying to allocate them. -- auth/jwt - Fix memory leak in slurmctld with 'scontrol token'. -- Fix shared gres (shard/mps) leak when using --tres-per-task -- Fix sacctmgr segfault when listing accounts with coordinators. -- slurmrestd - improve error logging when client connections experience polling errors. -- slurmrestd - improve handling of sockets in different states of shutdown to avoid infinite poll() loop causing a thread to max CPU usage until process is killed. -- slurmrestd - avoid possible segfault caused by race condition of already completed connections. -- mpi/cray_shasta - Fix PMI shared secret for hetjobs. -- gpu/oneapi - Fix CPU affinity handling. -- Fix dynamic nodes powering up when already up after adding/deleting nodes when using power_save logic. -- slurmrestd - Add support for setting max connections. -- data_parser/v0.0.39 - fix sacct --json matching associations from a different cluster. -- Fix segfault when clearing reqnodelist of a pending job. -- Fix memory leak of argv when submitting jobs via slurmrestd or CLI commands. -- slurmrestd - correct miscalculation of job argument count that could cause memory leak when job submission fails. -- slurmdbd - add warning on startup if max_allowed_packet is too small. -- gpu/nvml - Remove E-cores from NVML's cpu affinity bitmap when "allow_ecores" is not set in SlurmdParameters. -- Fix regression from 23.02.0rc1 causing a FrontEnd slurmd to assert fail on startup and don't be configured with the appropriate port. -- Fix dynamic nodes not being sorted and not being included in topology, which resulted in suboptimal dynamic node selection for jobs. -- Fix slurmstepd crash due to potential division by zero (SIGFPE) in certain edge-cases using the PMIx plugin. -- Fix issue with PMIx HetJob requests where certain use-cases would end up with communication errors due to incorrect PMIx hostname info setup. -- openapi/v0.0.39 - revert regression in job update requests to accept job description for changes instead of requiring job description in "job" field. -- Fix regression in 23.02.0rc1 that caused a step to crash with a bad --gpu-bind=single request. -- job_container/tmpfs - skip more in-depth attempt to clean up the base path when not required. This prevents unhelpful, and possibly misleading, debug2 messages when not using the new "shared" mode. -- gpu/nvml - Fix gpu usage when graphics processes are running on the gpu. -- slurmrestd - fix regression where "exclusive" field was removed from job descriptions and submissions. -- Fix issue where requeued jobs had bad gres allocations leading to gres not being deallocated at the end of the job, preventing other jobs from using those resources. -- Fix regression in 23.02.0rc1 which caused incorrect values for SLURM_TASKS_PER_NODE when the job requests --ntasks-per-node and --exclusive or --ntasks-per-core=1 (or CR_ONE_TASK_PER_CORE) and without requesting --ntasks. SLURM_TASKS_PER_NODE is used by mpirun, so this regression caused mpirun to launch the wrong number of tasks and to sometimes fail to launch tasks. -- Prevent jobs running on shards from being canceled on slurmctld restart. -- Fix SPANK prolog and epilog hooks that rely on slurm_init() for access to internal Slurm API calls. -- oci.conf - Populate %m pattern with ContainerPath or SlurmdSpoolDir if ContainerPath is not configured. -- Removed zero padding for numeric values in container spool directory names. -- Avoid creating an unused task-4294967295 directory in container spooldir. -- Cleanup container step directories at step completion. -- sacctmgr - Fix segfault when printing empty tres. -- srun - fix communication issue that prevented slurmctld from connecting to an srun running outside of a compute node.
* Changes in Slurm 22.05.9 ========================== -- Allocate correct number of sockets when requesting gres and running with CR_SOCKET*. -- Fix handling of --prefer for job arrays. -- Fix regression in 22.05.5 that causes some jobs that request --ntasks-per-node to be incorrectly rejected. -- Fix slurmctld crash when a step requests fewer tasks than nodes. -- Fix incorrect task count in steps that request --ntasks-per-node and a node count with a range (e.g. -N1-2). -- Fix some valid step requests hanging instead of running. -- slurmrestd - avoid possible race condition which would cause slurmrestd to silently no longer accept new client connections. -- Fix GPU setup on CRAY systems when using the CRAY_CUDA_MPS environment variable. GPUs are now correctly detected in such scenarios. -- Fix the job prolog not running for jobs with the interactive step (salloc jobs with LaunchParameters=use_interactive_step set in slurm.conf) that were scheduled on powered down nodes. The prolog not running also broke job_container/tmpfs, pam_slurm_adopt, and x11 forwarding. -- task/affinity - fix slurmd segfault when request launch task requests of type "--cpu-bind=[map,mask]_cpu:<list>" have no <list> provided. -- sched/backfill - fix segfault when removing a PLANNED node from system. -- sched/backfill - fix deleted planned node staying in planned node bitmap. -- Fix nodes remaining as PLANNED after slurmctld save state recovery. -- Fix regression in 22.05.0rc1 that broke Nodes=ALL in a NodeSet. -- Fix incorrect memory constraint when receiving a job from 20.11 that uses cpu count for memory calculation. -- openapi/v0.0.[36-38] - avoid possible crash from jobs submitted with argv. -- openapi/v0.0.[36-38] - avoid possible crash from rejected jobs submitted with batch_features. -- srun - fix regression in 22.05.7 that prevented slurmctld from connecting to an srun running outside of a compute node