forked from SchedMD/slurm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
11955 lines (11660 loc) · 673 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
This file describes changes in recent versions of Slurm. It primarily
documents those changes that are of interest to users and administrators.
* Changes in Slurm 22.05.0pre1
==============================
-- gres/gpu - Avoid stripping GRES type field during normalization if any
other GRES have a defined type field.
-- burst_buffer/datawarp - free bb_job after stage-out or teardown are done.
-- acct_gather_energy_rsmi has been renamed acct_gather_energy_gpu.
-- Remove support for (non-functional) --cpu-bind=boards.
-- accounting_storage/mysql - ensure new non-HetJobs have het_job_offset NO_VAL
in the database and fix the same field when retrieving older bad records.
-- PreemptMode now works as a condition for qos in sacctmgr.
-- scancel - add "--me" option.
-- gres/gpu - Fix configured/system-detected GRES match for some combinations
for which the sorting affected the expected selection result.
-- openapi/v0.0.38 - Fork existing openapi/v0.0.37 plugin.
-- openapi/dbv0.0.38 - Fork existing openapi/dbv0.0.37 plugin.
-- openapi/v0.0.35 - Plugin has been removed.
-- scrontab - Don't accept extra letters after a '@' repeating pattern.
-- openapi/dbv0.0.38 - Add missing method POST for /associations/.
-- Make DefMemPerCPU/MaxMemPerCPU and DefMemPerNode/MaxMemPerNode precedence
at the global level the same as in partition level, and print an error
if both of a pair are set.
-- openapi/v0.0.38 - Allow strings for JobIds instead of only numerical JobIds
for GET, DELETE, and POST job methods.
-- openapi/v0.0.38 - enable job priority field for job submissions and updates.
-- openapi/v0.0.38 - request node states query includes MIXED state instead of
only allocated.
-- openapi/dbv0.0.38 - Correct tree position of dbv0.0.38_job_step.
-- Enforce all Slurm plugin requirements for plugins specified with absolute
path.
-- Added --prefer option at job submission to allow for 'soft' constraints.
-- Remove support for PMIx 1.x
* Changes in Slurm 21.08.4
==========================
-- Fix potential deadlock when using PMI v1.
-- Fix tight loop sending DBD_SEND_MULT_JOB_START when the slurmctld has an
issue talking correctly to the DBD.
-- Fix memory leak in step creation.
-- Fix potential deadlock when shutting down slurmctld.
* Changes in Slurm 21.08.3
==========================
-- Return error to sacctmgr when running 'sacctmgr archive load' and the load
fails due to an invalid or corrupted file.
-- slurmctld/gres_ctld - fix deallocation of typed GRES without device.
-- scrontab - fix capturing the cronspec request in the job script.
-- openapi/dbv0.0.37 - Add missing method POST for /associations/.
-- If ALTER TABLE was already run, continue with database upgrade.
-- slurmstepd - Gracefully handle RunTimeQuery returning no output.
-- srun - automatically handle issues with races to listen() on an ephemeral
socket, and suppress otherwise needless error messages.
-- Schedule sooner after Epilog completion with SchedulerParameters=defer.
-- Improve performance for AccountingStoreFlags=job_env.
-- Expose missing SLURMD_NODENAME and SLURM_NODEID to TaskEpilog environment.
-- Bring slurm_completion.sh up to date with changes to commands.
-- Fix issue where burst buffer stage-in could only start for one job in a job
array per scheduling cycle instead of bb_array_stage_cnt jobs per scheduling
cycle.
-- Fix checking if the dependency is the same job for array jobs.
-- Fix checking for circular dependencies with job arrays.
-- Restore dependent job pointers on slurmctld startup to avoid race.
-- openapi/v0.0.37 - Allow strings for JobIds instead of only numerical JobIds
for GET, DELETE, and POST job methods.
-- openapi/dbv0.0.36 - Gracefully handle missing associations.
-- openapi/dbv0.0.36 - Avoid restricting job association lookups to only
default associations.
-- openapi/dbv0.0.37 - Gracefully handle missing associations.
-- openapi/dbv0.0.37 - Avoid restricting job association lookups to only
default associations.
-- Fix error in GPU frequency validation logic.
-- Fix regression in 21.08.1 that broke federated jobs.
-- Correctly handle requested GRES when used in job arrays.
-- Fix error in pmix logic dealing with the incorrect size of buffer.
-- Fix handling of no_consume GRES, add it to allocated job allocated TRES.
-- Fix issue with typed GRES without Files= (bitmap).
-- Fix job_submit/lua support for 'gres' which is now stored as a 'tres'
when requesting jobs so needs a 'gres' prefix.
-- Fix regression where MPS would not deallocate from the node properly.
-- Fix --gpu-bind=verbose to work correctly.
-- Do not deny --constraint with special operators "[]()|*" when no changeable
features are requested, but continue to deny --constraint with special
operators when changeable features are requested.
-- openapi/v0.0.{35,36,37} - prevent merging the slurmrestd environment
alongside a new job submission.
-- openapi/dbv0.0.36 - Correct tree position of dbv0.0.36_job_step.
-- openapi/dbv0.0.37 - Correct tree position of dbv0.0.37_job_step.
-- openapi/v0.0.37 - enable job priority field for job submissions and updates.
-- openapi/v0.0.37 - request node states query includes MIXED state instead of
only allocated.
-- mpi/pmix - avoid job hanging until the time limit on PMIx agent failures.
-- Correct inverted logic where reduced version matching applied to non-SPANK
plugins where it should have only applied to SPANK plugins.
-- Fix issues where prologs would run in serial without PrologFlags=serial.
-- Make sure a job coming in is initially considered for magnetic reservations.
-- PMIx v1.1.4 and below are no longer supported.
-- Add comment to service files about disabling logging through journald.
-- Add SLURM_NODE_ALIASES env to RPC Prolog (PrologFlags=alloc) environment.
-- Limit max_script_size to 512 MB.
-- Fix shutdown of slurmdbd plugin to correctly notice when the agent thread
finishes.
-- slurmdbd - fix issue with larger batch script files being sent to SlurmDBD
with AccountingStoreFlags=job_script that can lead to accounting data loss
as the resulting RPC generated can exceed internal limits and won't be
sent, preventing further communication with SlurmDBD.
This issue is indicated by "error: Invalid msg_size" in your log files.
-- Fix compile issue with --without-shared-libslurm.
* Changes in Slurm 21.08.2
==========================
-- slurmctld - fix how the max number of cores on a node in a partition are
calculated when the partition contains multi-socket nodes. This in turn
corrects certain jobs node count estimations displayed client-side.
-- job_submit/cray_aries - fix "craynetwork" GRES specification after changes
introduced in 21.08.0rc1 that made TRES always have a type prefix.
-- Ignore nonsensical check in the slurmd for [Pro|Epi]logSlurmctld.
-- Fix writing to stderr/syslog when systemd runs slurmctld in the foreground.
-- Fix locking around log level setting routines.
-- Fix issue with updating job started with node range.
-- Fix issue with nodes not clearing state in the database when the slurmctld
is started with clean-start.
-- Fix hetjob components > 1 timing out due to InactiveLimit.
-- Fix sprio printing -nan for normalized association priority if
PriorityWeightAssoc was not defined.
-- Disallow FirstJobId=0.
-- Preserve job start info in the database for a requeued job that hadn't
registered the first time in the database yet.
-- Only send one message on prolog failure from the slurmd.
-- Remove support for TaskAffinity=yes in cgroup.conf.
-- accounting_storage/mysql - fix issue where querying jobs via sacct
--whole-hetjob=yes or slurmrestd (which automatically includes this flag)
could in some cases return more records than expected.
-- Fix issue for preemption of job array task that makes afterok dependency
fail. Additionally, send emails when requeueing happens due to preemption.
-- Fix sending requeue mail type.
-- Properly resize a job's GRES bitmaps and counts when resizing the job.
-- Fix node being able to transition to CLOUD state from non-cloud state.
-- Fix regression introduced in 21.08.0rc1 which broke a step's ability to
inherit GRES from the job when the step didn't request GRES but the job did.
-- Fix errors in logic when picking nodes based on bracketed anded constraints.
This also enforces the requirement to have a count when using such
constraints.
-- Handle job resize better in the database.
-- Exclude currently running, resized jobs from the runaway jobs list.
-- Make it possible to shrink a job more than once.
* Changes in Slurm 21.08.1
==========================
-- Fix potential memory leak if a problem happens while allocating GRES for
a job.
-- If an overallocation of GRES happens terminate the creation of a job.
-- AutoDetect=nvml: Fatal if no devices found in MIG mode.
-- slurm.spec - fix querying for PMIx and UCX version.
-- Print federation and cluster sacctmgr error messages to stderr.
-- Fix off by one error in --gpu-bind=mask_gpu.
-- Fix statement condition in http_parser autoconf macro.
-- Fix statement condition in netloc autoconf macro.
-- Add --gpu-bind=none to disable gpu binding when using --gpus-per-task.
-- Handle the burst buffer state "alloc-revoke" which previously would not
display in the job correctly.
-- Fix issue in the slurmstepd SPANK prolog/epilog handler where configuration
values were used before being initialized.
-- Restore a step's ability to utilize all of an allocations memory if --mem=0.
-- Fix --cpu-bind=verbose garbage taskid.
-- Fix cgroup task affinity issues from garbage taskid info.
-- Make gres_job_state_validate() client logging behavior as before 44466a4641.
-- Fix steps with --hint overriding an allocation with --threads-per-core.
-- Require requesting a GPU if --mem-per-gpu is requested.
-- Return error early if a job is requesting --ntasks-per-gpu and no gpus or
task count.
-- Properly clear out pending step if unavailable to run with available
resources.
-- Kill all processes spawned by burst_buffer.lua including decendents.
-- openapi/v0.0.{35,36,37} - Avoid setting default values of min_cpus,
job name, cwd, mail_type, and contiguous on job update.
-- openapi/v0.0.{35,36,37} - Clear user hold on job update if hold=false.
-- Prevent CRON_JOB flag from being cleared when loading job state.
-- sacctmgr - Fix deleting WCKeys when not specifying a cluster.
-- Fix getting memory for a step when the first node in the step isn't the
first node in the allocation.
-- Make SelectTypeParameters=CR_Core_Memory default for cons_tres and cons_res.
-- Correctly handle mutex unlocks in the gres code if failures happen.
-- Give better error message if -m plane is given with no size.
-- Fix --distribution=arbitrary for salloc.
-- Fix jobcomp/script regression introduced in 21.08.0rc1 0c75b9ac9d.
-- Only send the batch node in the step_hostlist in the job credential.
-- When setting affinity for the batch step don't assume the batch host is node
0.
-- In task/affinity better checking for node existence when laying out
affinity.
-- slurmrestd - fix job submission with auth/jwt.
-- Fix 'scontrol setdebug' not respecting slurm.conf logging configurations.
* Changes in Slurm 21.08.0
==========================
-- Restored --gpu-bind=single:<ntasks> to check core affinity like
--gpu-bind=closest does. This removal of this behavior only was in rc2.
-- slurmd - Fix assert failure on initialization due to bad node name.
-- Fix error codes in cgroup/v1.
-- Don't destroy the memory step outside fini, which leads to a double destroy
causing an error message.
-- Add support for lua 5.4.
-- Force cgroup.clone_children to 0 in slurm cgroup directories. This caused
issues in task cpuset plugin in systems with it enabled by default.
-- Clear GRES HAS_TYPE flag when removing type name.
-- Environment flags in gres.conf now override flags set by AutoDetect.
-- Environment flags in gres.conf now apply to subsequent gres.conf lines where
Environment flags are not set.
-- Set missing job_uid and job_gid members when preparing a kill_job_msg_t in
abort_job_on_node(), abort_job_on_nodes() and kill_job_on_node().
-- Fix swappiness not being set in cgroups.
-- Fix coordinators for new subaccounts.
-- Fix coordinators when adding existing users with PrivateData=users.
-- slurmctld - do not attempt to relinquish control to self.
-- openapi/v0.0.37 - Honor kill_on_invalid_dependency as job parameter.
-- Check max_gres when doing step allocation, fix for regression in rc2.
-- SPANK plugins are now required to match the current Slurm version, and must
be recompiled for each new Slurm release.
-- node_features/helpers - add ExecTime configuration option.
-- srun - Fix force termination with -X.
-- On slurmctld restart set node typed GRES counts correctly.
-- Fix places where a step wasn't allocated in the slurmctld but wasn't ever
removed from the job.
-- Fix step allocation memory when using --threads-per-core.
-- Fix step allocations to consume all threads on a core when using
threads-per-core.
-- Add check to validate cpu request on a step if --threads-per-core is given
and it is less than what the core on the node has in the allocation.
-- Fix issue where a step could request more gres than the job had and the step
would hang forever. This bug was only introduced in 21.08.0rc2.
-- Only print \r\n for logging messages on stderr when --pty has been
explicitly requested.
-- Relax check on SPANK plugins to only require Slurm major + minor versions
to match.
-- job_container/tmpfs - delegate handling of /dev/shm to the extern step
so new step launches will be attached correctly even after the slurmd
process has been restarted.
-- Limit the wait time in proctrack_g_wait() to UnkillableStepTimeout instead
of a hardcoded value of 256 seconds, and limit the delay between tests to a
maximum of 32 seconds.
-- fatal() on start if using job_container/tmpfs without PrologFlags=Contian.
* Changes in Slurm 21.08.0rc2
=============================
-- Load bf_when_last_cycle from job state only if protocol version >= 21.08.
-- Docs - remove man3 section entirely.
-- Enable OCI container execution support as a technical preview.
-- Set step memory when using MemPerGPU or DefMemPerGPU. Previously a step's
memory was not set even when it requested --mem-per-gpu and at least one
GPU.
-- Add cli_filter.lua support in configless mode.
-- Remove some of the MAX macro usages with return codes.
-- Check that the step requests at least as many gres as nodes.
-- sacct - Add --json and --yaml arguments.
-- squeue - Add --json and --yaml arguments.
-- sinfo - Add --json and --yaml arguments.
-- Make job's SLURM_JOB_GPUS print global GPU IDs instead of MIG unique_ids.
-- Fix miscounting of GPU envs in prolog/epilog if MultipleFiles was used.
-- Support MIGs in prolog/epilog's CUDA_VISIBLE_DEVICES & co.
-- Add SLURM_JOB_GPUS back into Prolog; add it to Epilog.
-- Fix issue where the original executable, not the bcast'd version, was
executed with 'srun --bcast'.
-- Fix memory leaks when cleaning up config_response_msg_t.
-- sacct - print '-' header correctly for fields over 53-characters wide.
-- openapi/dbv0.0.37 - replace "REST" with "Slurm OpenAPI" for plugin_name.
-- openapi/v0.0.37 - replace "REST" with "Slurm OpenAPI" for plugin_name.
-- configless - fix segfault on 'scontrol reconfigure'.
-- Fix bad reference to step_ptr->job_ptr after step_ptr is freed.
-- Fix bad reference to config_for_clients when shutting down slurmctld.
-- Fix memory leak on gres_list_alloc when freeing steps.
-- Fix memory leak on kill_job_msg_t->work_dir when freeing struct.
-- Fix memory leak on slurmdb_step_rec_t->submit_line when freeing struct.
-- Fix memory leak in the slurmdbd when requesting wckeys from all clusters.
-- Use FREE_NULL_LIST instead of list_destroy.
-- Fix bad pointer reference after bad unpack of jobacctinfo_t.
-- If we made are running an interactive session we need to force track_steps.
-- Disable OPOST flag when using --pty to avoid issues with Emac.
-- Fix issue where extra bonus core was allocated in some situations.
-- Avoid putting gres with count of 0 on a TRES req/alloc.
-- Fix determining if a reservation is used or not.
-- Fix memory in requested TRES when --mem-per-gpu is used.
-- Changed ReqMem field in sacct to match memory from ReqTRES.
-- Changed --gpu-bind=single:<ntasks> to no longer check core affinity like
--gpu-bind=closest does. This consequently affects --ntasks-per-gpu.
* Changes in Slurm 21.08.0rc1
=============================
-- slurmrestd - add v0.0.37 OpenAPI plugin.
-- slurmrestd/v0.0.37 - rename standard_in -> standard_input.
-- slurmrestd/v0.0.37 - rename standard_out -> standard_output.
-- slurmdbd - Improve log messages of more time than possible on rollups.
-- Changed the --format handling for negative field widths (left justified)
to apply to the column headers as well as the printed fields.
-- Add LimitFactor to the QOS. A float that is factored into an associations
[Grp|Max]TRES limits. For example, if the LimitFactor is 2, then an
association with a GrpTRES of 30 CPUs, would be allowed to allocate 60
CPUs when running under this QOS.
-- slurmrestd - Pass SLURM_NO_CHANGE_IN_DATA to client as 403 (Not Modified).
-- slurmrestd/v0.0.37 - Add update_time field to Jobs query to allow clients
to only get jobs list based on change timestamp.
-- Reset job eligible time when job is manually held.
-- Add DEBUG_FLAG_JAG to improve logging related to job account gathering.
-- Convert logging in account_gather/common to DEBUG_FLAG_JAG.
-- Add more logging for jag_common_poll_data() when prec_extra() called.
-- slurmrestd/v0.0.37 - add API to fetch reservation(s) info.
-- Catch more errors in task/cgroup initalization and cleanup to avoid allowing
jobs to start when cgroups failure to configure correctly.
-- Fix cgroup ns detection when using containers (e.g. LXC or Docker).
-- Reset job's next_step_id counter to 0 after being requeued.
-- Make scontrol exit with non-zero status after failing to delete a partition
or reservation.
-- Make NtasksPerTRES optional in slurm_sprint_job_info().
-- slurmrestd/v0.0.37 - Add update_time field to nodes query to allow clients
to only get nodes list based on change timestamp.
-- common/parse_config - catch and propagate return codes when handling a match
on a key-value pattern. This implies error codes detected in the handlers
are now not ignored and users of _handle_keyvalue_match() can fatal().
-- common/hostlist - fix hostlist_delete_nth() xassert() upper bound check.
-- API change: Removed slurm_kill_job_msg and modified the function signature
for slurm_kill_job2. slurm_kill_job2 should be used instead of
slurm_kill_job_msg.
-- Fix non-zero exit code for scontrol ping when all controllers are down.
-- Enforce a valid configuration for AccountingStorageEnforce in slurm.conf.
If the configuration is invalid, then an error message will be printed and
the command or daemon (including slurmctld) will not run.
-- slurmrestd/v0.0.37 - Add update_time field to partitions/reservations query
to allow clients to only get the entities list when something changed.
-- slurmdbd.service - add "After" relationship to all common names for MariaDB
to reduce startup delays.
-- slurmrestd/v0.0.37 - Correct displaying node states that are UNKNOWN.
-- slurmrestd/v0.0.37 - Add flags to node states.
-- Fix first job on fresh cluster not being assigned JobId=1 (or FirstJobId).
-- squeue - make it so --nodelist is sensitive to --clusters.
-- squeue - do --nodelist node validation in the same order as listing.
-- Removed AccountingStoreJobComment option. Please update your config to use
AccountingStoreFlags=job_comment instead.
-- AccountingStoreFlags=job_script allows you to store the job's batch script.
-- AccountingStoreFlags=job_env allows you to store the job's env vars.
-- Add sacct -o SubmitLine to get the submit line of a job/step.
-- Removed DefaultStorage{Host,Loc,Pass,Port,Type,User} options.
-- Fix NtasksPerTRES delimiter from : to = in scontrol show job output.
-- Removed CacheGroups, CheckpointType, JobCheckpointDir, MemLimitEnforce,
SchedulerPort, SchedulerRootFilter options.
-- Make job accounting queries use consistent timeframes with and w/o jobs.
-- --cpus-per-task and --threads-per-core now imply --exact.
This fixes issues where steps would be allocated the wrong number of CPUs.
-- configure: the --with option handling has been made consistent across the
various optional libraries. Specifying --with-foo=/path/to/foo will only
check that directory for the applicable library (rather than, in some cases,
falling back to the default directories), and will always error the build
if the library is not found (instead of a mix of error messages and non-
fatal warning messages).
-- configure: replace --with-rmsi_dir option with proper handling for
--with-rsmi=dir.
-- Pass additional job environment variables to MailProg.
-- Add SLURM_JOB_WORK_DIR to Prolog, Epilog.
-- Removed sched/hold plugin.
-- Fix srun overwriting SLURM_SUBMIT_DIR and SLURM_SUBMIT_HOST when within an
existing allocation.
-- step_ctx code has been removed from the api.
-- cli_filter/lua, jobcomp/lua, job_submit/lua now load their scripts from the
same directory as the slurm.conf file (and thus now will respect changes
to the SLURM_CONF environment variable).
-- SPANK - call slurm_spank_init if defined without slurm_spank_slurmd_exit in
slurmd context.
-- job_container/tmpfs - Remove need for .active file to allow salloc without
an interactive step to work.
-- Add new 'PLANNED' state to a node to represent when the backfill scheduler
has it planned to be used in the future instead of showing as 'IDLE'.
-- slurmd - Delay background node registration on every failure up to 128s on
startup.
-- slurmctld - Always notify slurmd that node registration was accepted to
avoid slurmd needless attempting to re-register if there is configuration
issue.
-- Put node into "INVAL" state upon registering with an invalid node
configuration. Node must register with a valid configuration to continue.
-- Make --cpu-bind=threads default for --threads-per-core -- cli and env can
override.
-- jobcomp/elasticsearch - Use data_t to serialize data. The plugin now has the
JSON-C library as a prerequisite.
-- scrontab - create the temporary file under the TMPDIR environment variable
(if set), otherwise continue to use TmpFS as configured in slurm.conf.
-- Add LastBusyTime to "scontrol show nodes" and slurmrestd nodes output,
which represents the time the node last had jobs on it.
-- slurmd - allow multiple comma-separated controllers to be specified in
configless mode with --conf-server
-- sacctmgr - changed column headings to "ParentID" and "ParentName" instead
of "Par ID" and "Par Name" respectively.
-- Perl API - make sure man pages are installed under the --prefix given to
configure.
-- Manually powering down of nodes with scontrol now ignores
SuspendExc<Nodes|Parts>.
-- SALLOC_THREADS_PER_CORE and SBATCH_THREADS_PER_CORE have been added as
input environment variables for salloc and sbatch, respectively. They do
the same thing as --threads-per-core.
-- Distinguish queued reboot requests (REBOOT) from issued reboots (REBOOT^).
-- Set the maximum number of open files per process to 4096 to avoid
performance issues when closing the entire range with closeall().
-- auth/jwt - add support for RS256 tokens.
-- Relax reservation purge due to any invalid uid after creation time.
-- Reject srun that requests both --exclusive and --overlap.
-- service files - change dependency to network-online rather than just
network to ensure DNS and other services are available.
-- RSMI: Fix incorrect PCI BDF bits.
-- plugins/cli_filter - Convert to using data_t to serialize JSON.
-- Fix testing array job after regaining locks in backfill.
-- Don't display node's comment with "scontrol show nodes" unless set.
-- Add "Extra" field to node to store extra information other than a comment.
-- scrontab - Use /tmp instead of TmpFS if TMPDIR is not set.
-- Add ResumeTimeout, SuspendTimeout and SuspendTime to Partitions.
-- sreport - change to sorting TopUsage by the --tres option.
-- slurmrestd - do not run allow operation as SlurmUser/root by default.
-- Allow map_cpu and mask_cpu for non-whole node allocation.
-- TaskPluginParam=verbose is now treated as a default. Previously it would be
applied regardless of the job specifying a --cpu-bind.
-- Add "node_reg_mem_percent" SlurmctldParameter to define percentage of
memory nodes are allowed to register with.
-- Show correct number of SocketsPerBoard in slurmd -C with hwloc2.
-- Alter sreport's cluster utilization report column name from
'Reserved' to 'Planned' to match the nomenclature of the 'Planned' node.
-- Add StateComplete format option to sinfo to show base_state+flags.
-- "scontrol show node" now shows State as base_state+flags instead of
shortened state with flags appended. eg. IDLE# -> IDLE+POWERING_UP.
Also "POWER" state flag string is "POWERED_DOWN".
-- slurmd/req - add missing job_env_t's het_job_id initialization off the
request in _rpc_{abort,terminate}_job(). This caused problems for Native
Cray builds when joining a CNCU job_container plugin with Epilog configured.
-- Fix joining a CNCU job_container on a Native Cray build before executing the
UnkillableStepProgram for a HetJob step.
-- slurmrestd/v0.0.35 - Plugin has been tagged as deprecated.
-- srun - Job steps requiring more cores than available to be rejected unless
'--overlap' is specificed.
-- Add bf_node_space_size to SchedulerParameters.
-- Add scontrol update node state=POWER_DOWN_FORCE and POWER_DOWN_ASAP as new
ways to power off and reset especially CLOUD nodes.
-- Define and separate node power state transitions. Previously a powering
down node was in both states, POWERING_OFF and POWERED_OFF. These are now
separated.
-- Create a new process called slurmscriptd which runs PrologSlurmctld and
EpilogSlurmctld. This avoids fork() calls from slurmctld, and can avoid
performance issues if the slurmctld has a large memory footprint.
-- Added new Script option to DebugFlags for debugging slurmscriptd.
-- scrontab - add ability to update crontab from a file or standard input.
-- scrontab - add ability to set and expand variables.
-- Pass JSON of job to node mappings to ResumeProgram.
-- If running steps in an allocation with CR_PACK_NODE or -mpack the srun will
only attempt to allocate as much as needed from the allocation instead
of always trying to allocate every node in the allocation.
-- Jobs that request the whole node now check to see if any gres are allocated.
-- Rename SbcastParameters to BcastParameters.
-- Make srun sensitive to BcastParameters.
-- RSMI: Add gres_links_create_empty() and preserve RSMI enumeration order.
-- GPUs: Use index instead of dev_num for CUDA_VISIBLE_DEVICES
-- Don't run epilog on nodes if job never launched.
-- QOS accrue limits only apply to the job QOS, not partition QOS.
-- Add --gpu-bind=per_task:<gpus_per_task> option, --gpus-per-task will now
set this option by default.
-- Treat any return code from SPANK plugin that is not SLURM_SUCCESS to be an
error or rejection.
-- Print the statistics for extern step adopted processes in sstat.
-- Fix SLURM_NODE_ALIASES to work for ipv6 node addrs.
-- Add support for automatically detecting and broadcasting executable shared
object dependencies for sbcast and srun --bcast.
-- Delay steps when memory already used instead of rejecting step request.
* Changes in Slurm 20.11.9
==========================
-- burst_buffer - add missing common directory to the Makefile SUBDIRS.
-- sacct - fix truncation when printing jobidraw field.
-- GRES - Fix loading state of jobs using --gpus to request gpus.
-- Fix minor logic error in health check node state output
-- Fix GCC 11.1 compiler warnings.
-- Delay steps when memory already used instead of rejecting step request.
-- Fix memory leak in the slurmdbd when requesting wckeys from all clusters.
-- Fix determining if a reservation is used or not.
-- openapi/v0.0.35 - Honor kill_on_invalid_dependency as job parameter.
-- openapi/v0.0.36 - Honor kill_on_invalid_dependency as job parameter.
-- Fix various issues dealing with updates on magnetic reservations that could
lead to abort slurmctld.
-- openapi/v0.0.36 - Avoid setting default values of min_cpus, job name, cwd,
mail_type, and contiguous on job update.
-- openapi/v0.0.36 - Clear user hold on job update if hold=false.
-- Fix slurmctld segfault due to a bit_test() call with a MAINT+ANY_NODES
reservation NULL node_bitmap.
-- Fix slurmctld segfault due to a bit_copy() call with a REPLACE+ANY_NODES
reservation NULL node_bitmap.
-- Fix error in GPU frequency validation logic.
-- Fix error in pmix logic dealing with the incorrect size of buffer.
-- PMIx v1.1.4 and below are no longer supported.
-- Fix shutdown of slurmdbd plugin to correctly notice when the agent thread
finishes.
* Changes in Slurm 20.11.8
==========================
-- slurmctld - fix erroneous "StepId=CORRUPT" messages in error logs.
-- Correct the error given when auth plugin fails to pack a credential.
-- Fix unused-variable compiler warning on FreeBSD in fd_resolve_path().
-- acct_gather_filesystem/lustre - only emit collection error once per step.
-- srun - leave SLURM_DIST_UNKNOWN as default for --interactive.
-- Add GRES environment variables (e.g., CUDA_VISIBLE_DEVICES) into the
interactive step, the same as is done for the batch step.
-- Fix various potential deadlocks when altering objects in the database
dealing with every cluster in the database.
-- slurmrestd - handle slurmdbd connection failures without segfaulting.
-- slurmrestd - fix segfault for searches in slurmdb/v0.0.36/jobs.
-- slurmrestd - remove (non-functioning) users query parameter for
slurmdb/v0.0.36/jobs from openapi.json
-- slurmrestd - fix segfault in slurmrestd db/jobs with numeric queries
-- slurmrestd - add argv handling for job/submit endpoint.
-- srun - fix broken node step allocation in a heterogeneous allocation.
-- Fail step creation if -n is not multiple of --ntasks-per-gpu.
-- job_container/tmpfs - Fix slowdown on teardown.
-- Fix problem with SlurmctldProlog where requeued jobs would never launch.
-- job_container/tmpfs - Fix issue when restarting slurmd where the namespace
mount points could disappear.
-- sacct - avoid truncating JobId at 34 characters.
-- scancel - fix segfault when --wckey filtering option is used.
-- select/cons_tres - Fix memory leak.
-- Prevent file descriptor leak in job_container/tmpfs on slurmd restart.
-- slurmrestd/dbv0.0.36 - Fix values dumped in job state/current and
job step state.
-- slurmrestd/dbv0.0.36 - Correct description for previous state property.
-- perlapi/libslurmdb - expose tres_req_str to job hash.
-- scrontab - close and reopen temporary crontab file to deal with editors
that do not change the original file, but instead write out then rename
a new file.
-- sstat - fix linking so that it will work when --without-shared-libslurm
was used to build Slurm.
-- Clear allocated cpus for running steps in a job before handling requested
nodes on new step.
-- Don't reject a step if not enough nodes are available. Instead, defer the
step until enough nodes are available to satisfy the request.
-- Don't reject a step if it requests at least one specific node that is
already allocated to another step. Instead, defer the step until the
requested node(s) become available.
-- slurmrestd - add description for slurmdb/job endpoint.
-- Better handling of --mem=0.
-- Ignore DefCpuPerGpu when --cpus-per-task given.
-- sacct - fix segfault when printing StepId (or when using --long).
* Changes in Slurm 20.11.7
==========================
-- slurmd - handle configless failures gracefully instead of hanging
indefinitely.
-- select/cons_tres - fix Dragonfly topology not selecting nodes in the same
leaf switch when it should as well as requests with --switches option.
-- Fix issue where certain step requests wouldn't run if the first node in the
job allocation was full and there were idle resources on other nodes in
the job allocation.
-- Fix deadlock issue with <Prolog|Epilog>Slurmctld.
-- torque/qstat - fix printf error message in output.
-- When adding associations or wckeys avoid checking multiple times a user or
cluster name.
-- Fix wrong jobacctgather information on a step on multiple nodes
due to timeouts sending its the information gathered on its node.
-- Fix missing xstrdup which could result in slurmctld segfault on array jobs.
-- Fix security issue in PrologSlurmctld and EpilogSlurmctld by always
prepending SPANK_ to all user-set environment variables. CVE-2021-31215.
* Changes in Slurm 20.11.6
==========================
-- Fix sacct assert with the --qos option.
-- Use pkg-config --atleast-version instead of --modversion for systemd.
-- common/fd - fix getsockopt() call in fd_get_socket_error().
-- Properly handle the return from fd_get_socket_error() in _conn_readable().
-- cons_res - Fix issue where running jobs were not taken into consideration
when creating a reservation.
-- Avoid a deadlock between job_list for_each and assoc QOS_LOCK.
-- Fix TRESRunMins usage for partition qos on restart/reconfig.
-- Fix printing of number of tasks on a completed job that didn't request
tasks.
-- Fix updating GrpTRESRunMins when decrementing job time is bigger than it.
-- Make it so we handle multithreaded allocations correctly when doing
--exclusive or --core-spec allocations.
-- Fix incorrect round-up division in _pick_step_cores
-- Use appropriate math to adjust cpu counts when --ntasks-per-core=1.
-- cons_tres - Fix consideration of power downed nodes.
-- cons_tres - Fix DefCpuPerGPU, increase cpus-per-task to match with
gpus-per-task * cpus-per-gpu.
-- Fix under-cpu memory auto-adjustment when MaxMemPerCPU is set.
-- Make it possible to override CR_CORE_DEFAULT_DIST_BLOCK.
-- Perl API - fix retrieving/storing of slurm_step_id_t in job_step_info_t.
-- Recover state of burst buffers when slurmctld is restarted to avoid skipping
burst buffer stages.
-- Fix race condition in burst buffer plugin which caused a burst buffer
in stage-in to not get state saved if slurmctld stopped.
-- auth/jwt - print an error if jwt_file= has not been set in slurmdbd.
-- Fix RESV_DEL_HOLD not being a valid state when using squeue --states.
-- Add missing squeue selectable states in valid states error message.
-- Fix scheduling last array task multiple times on error, causing segfault.
-- Fix issue where a step could be allocated more memory than the job when
dealing with --mem-per-cpu and --threads-per-core.
-- Fix removing qos from assoc with -= can lead to assoc with no qos
-- auth/jwt - fix segfault on invalid credential in slurmdbd due to
missing validate_slurm_user() function in context.
-- Fix single Port= not being applied to range of nodes in slurm.conf
-- Fix Jobs not requesting a tres are not starting because of that tres limit.
-- acct_gather_energy/rapl - fix AveWatts calculation.
-- job_container/tmpfs - Fix issues with cleanup and slurmd restarting on
running jobs.
* Changes in Slurm 20.11.5
==========================
-- Fix main scheduler bug where bf_hetjob_prio truncates SchedulerParameters.
-- Fix sacct not displaying UserCPU, SystemCPU and TotalCPU for large times.
-- scrontab - fix to return the correct index for a bad #SCRON option.
-- scrontab - fix memory leak when invalid option found in #SCRON line.
-- Add errno for when a user requests multiple partitions and they are using
partition based associations.
-- Fix issue where a job could run in a wrong partition when using
EnforcePartLimits=any and partition based associations.
-- Remove possible deadlock when adding associations/wckeys in multiple
threads.
-- When using PrologFlags=alloc make sure the correct Slurm version is set
in the credential.
-- When sending a job a warning signal make sure we always send SIGCONT
beforehand.
-- Fix issue where a batch job would continue running if a prolog failed on a
node that wasn't the batch host and requeuing was disabled.
-- Fix issue where sometimes salloc/srun wouldn't get a message about a prolog
failure in the job's stdout.
-- Requeue or kill job on a prolog failure when PrologFlags is not set.
-- Fix race condition causing node reboots to get requeued before
ResumeTimeout expires.
-- Preserve node boot_req_time on reconfigure.
-- Preserve node power_save_req_time on reconfigure.
-- Fix node reboots being queued and issued multiple times and preventing the
reboot to time out.
-- Fix debug message related to GrpTRESRunMin (AssocGrpCPURunMinutesLimit).
-- Fix run_command to exit correctly if track_script kills the calling thread.
-- Only requeue a job when the PrologSlurmctld returns nonzero.
-- When a job is signaled with SIGKILL make sure we flush all
prologs/setup scripts.
-- Handle burst buffer scripts if the job is canceled while stage_in is
happening.
-- When shutting down the slurmctld make note to ignore error message when
we have to kill a prolog/setup script we are tracking.
-- scrontab - add support for the --open-mode option.
-- acct_gather_profile/influxdb - avoid segfault on plugin shutdown if setup
has not completed successfully.
-- Reduce delay in starting salloc allocations when running with prologs.
-- Fix issue passing open fd's with [send|recv]msg.
-- Alter AllocNodes check to work if the allocating node's domain doesn't
match the slurmctld's. This restores the pre-20.11 behavior.
-- Fix slurmctld segfault if jobs from a prior version had the now-removed
INVALID_DEPEND state flag set and were allowed to run in 20.11.
-- Add job_container/tmpfs plugin to give a method to provide a private /tmp
per job.
-- Set the correct core affinity when using AutoDetect.
-- Start relying on the conf again in xcpuinfo_mac_to_abs().
-- Fix global_last_rollup assignment on job resizing.
-- slurmrestd - hand over connection context on _on_message_complete().
-- slurmrestd - mark "environment" as required for job submissions in schema.
-- slurmrestd - Disable credential reuse on the same TCP connection. Pipelined
HTTP connections will have to provide authentication with every request.
-- Avoid data conversion error on NULL strings in data_get_string_converted().
-- Handle situation where slurmctld is too slow processing
REQUEST_COMPLETE_BATCH_SCRIPT and it gets resent from the slurmstepd.
-- Fix sacct crashing with the --qos option
* Changes in Slurm 20.11.4
==========================
-- Fix node selection for advanced reservations with features.
-- mpi/pmix: Handle pipe failure better when using ucx.
-- mpi/pmix: include PMIX_NODEID for each process entry.
-- Fix job getting rejected after being requeued on same node that died.
-- job_submit/lua - add "network" field.
-- Fix situations when a reoccuring reservation could erroneously skip a
period.
-- Ensure that a reservations [pro|epi]log are ran on reoccuring reservations.
-- Fix threads-per-core memory allocation issue when using CR_CPU_MEMORY.
-- Fix scheduling issue with --gpus.
-- Fix gpu allocations that request --cpus-per-task.
-- mpi/pmix: fixed print messages for all PMIXP_* macros
-- Add mapping for XCPU to --signal option.
-- Fix regression in 20.11 that prevented a full pass of the main scheduler
from ever executing.
-- Work around a glibc bug in which "0" is incorrectly printed as "nan"
which will result in corrupted association state on restart.
-- Fix regression in 20.11 which made slurmd incorrectly attempt to find the
parent slurmd address when not applicable and send incorrect reverse-tree
info to the slurmstepd.
-- Fix cgroup ns detection when using containers (e.g. LXC or Docker).
-- scrontab - change temporary file handling to work with emacs.
* Changes in Slurm 20.11.3
==========================
-- Fix segfault when parsing bad "#SBATCH hetjob" directive.
-- Allow countless gpu:<type> node GRES specifications in slurm.conf.
-- PMIx - Don't set UCX_MEM_MMAP_RELOC for older version of UCX (pre 1.5).
-- Don't green-light any GPU validation when core conversion fails.
-- Allow updates to a reservation in the database that starts in the future.
-- Better check/handling of primary key collision in reservation table.
-- Improve reported error and logging in _build_node_list().
-- Fix uninitialized variable in _rpc_file_bcast() which could lead to an
incorrect error return from sbcast / srun --bcast.
-- mpi/cray_shasta - fix use-after-free on error in _multi_prog_parse().
-- Cray - Handle setting correct prefix for cpuset cgroup with respects to
expected_usage_in_bytes. This fixes Cray's OOM killer.
-- mpi/pmix: Fix PMIx_Abort support.
-- Don't reject jobs allocating more cores than tasks with MaxMemPerCPU.
-- Fix false error message complaining about oversubscribe in cons_tres.
-- scrontab - fix parsing of empty lines.
-- Fix regression causing spank_process_option errors to be ignored.
-- Avoid making multiple interactive steps.
-- Fix corner case issues where step creation should fail.
-- Fix job rejection when --gres is less than --gpus.
-- Fix regression causing spank prolog/epilog not to be called unless the
spank plugin was loaded in slurmd context.
-- Fix regression preventing SLURM_HINT=nomultithread from being used
to set defaults for salloc->srun, sbatch->srun sequence.
-- Reject job credential if non-superuser sets the LAUNCH_NO_ALLOC flag.
-- Make it so srun --no-allocate works again.
-- jobacct_gather/linux - Don't count memory on tasks that have already
finished.
-- Fix 19.05/20.02 batch steps talking with a 20.11 slurmctld.
-- jobacct_gather/common - Do not process jobacct's with same taskid when
calling prec_extra.
-- Cleanup all tracked jobacct tasks when extern step child process finishes.
-- slurmrestd/dbv0.0.36 - Correct structure of dbv0.0.36_tres_list.
-- Fix regression causing task/affinity and task/cgroup to be out of sync when
configured ThreadsPerCore is different than the physical threads per core.
-- Fix situation when --gpus is given but not max nodes (-N1-1) in a job
allocation.
-- Interactive step - ignore cpu bind and mem bind options, and do not set
the associated environment variables which lead to unexpected behavior
from srun commands launched within the interactive step.
-- Handle exit code from pipe when using UCX with PMIx.
-- Partially revert changes made in 20.11.0 to srun step behavior. This change
required steps to explicitly request resources, otherwise the minimal set
of resources required would be assigned. This broke OpenMPI's 'mpiexec'
alongside other use cases. This reverts the behavior such that all resources
on a node are assigned to the job step by default.
-- srun - add a new --exact option, and deprecate the --whole option (which has
been restored as the default behavior).
* Changes in Slurm 20.11.2
==========================
-- Fix older versions of sacct not working with 20.11.
-- Fix slurmctld crash when using a pre-20.11 srun in a job allocation.
-- Correct logic problem in _validate_user_access.
-- Fix libpmi to initialize Slurm configuration correctly.
* Changes in Slurm 20.11.1
==========================
-- Fix spelling of "overcomited" to "overcomitted" in sreport's cluster
utilization report.
-- Silence debug message about shutting down backup controllers if none are
configured.
-- Don't create interactive srun until PrologSlurmctld is done.
-- Fix fd symlink path resolution.
-- Fix slurmctld segfault on subnode reservation restore after node
configuration change.
-- Fix resource allocation response message environment allocation size.
-- Ensure that details->env_sup is NULL terminated.
-- select/cray_aries - Correctly remove jobs/steps from blades using NPC.
-- cons_tres - Avoid max_node_gres when entire node is allocated with
--ntasks-per-gpu.
-- Allow NULL arg to data_get_type().
-- In sreport have usage for a reservation contain all jobs that ran in the
reservation instead of just the ones that ran in the time specified. This
matches the report for the reservation is not truncated for a time period.
-- Fix issue with sending wrong batch step id to a < 20.11 slurmd.
-- Add a job's alloc_node to lua for job modification and completion.
-- Fix regression getting a slurmdbd connection through the perl API.
-- Stop the extern step terminate monitor right after proctrack_g_wait().
-- Fix removing the normalized priority of assocs.
-- slurmrestd/v0.0.36 - Use correct name for partition field:
"min nodes per job" -> "min_nodes_per_job".
-- slurmrestd/v0.0.36 - Add node comment field.
-- Fix regression marking cloud nodes as "unexpectedly rebooted" after
multiple boots.
-- Fix slurmctld segfault in _slurm_rpc_job_step_create().
-- slurmrestd/v0.0.36 - Filter node states against NODE_STATE_BASE to avoid
the extended states all being reported as "invalid".
-- Fix race that can prevent the prolog for a requeued job from running.
-- cli_filter - add "type" to readily distinguish between the CLI command in
use.
-- smail - reduce sleep before seff to 5 seconds.
-- Ensure SPANK prolog and epilog run without an explicit PlugStackConfig.
-- Disable MySQL automatic reconnection.
-- Fix allowing "b" after memory unit suffixes.
-- Fix slurmctld segfault with reservations without licenses.
-- Due to internal restructuring ahead of the 20.11 release, applications
calling libslurm MUST call slurm_init(NULL) before any API calls.
Otherwise the API call is likely to fail due to libslurm's internal
configuration not being available.
-- slurm.spec - allow custom paths for PMIx and UCX install locations.
-- Use rpath if enabled when testing for Mellanox's UCX libraries.
-- slurmrestd/dbv0.0.36 - Change user query for associations to optional.
-- slurmrestd/dbv0.0.36 - Change account query for associations to optional.
-- mpi/pmix - change the error handler error message to be more useful.
-- Add missing connection in acct_storage_p_{clear_stats, reconfig, shutdown}.
-- Perl API - fix issue when running in configless mode.
-- nss_slurm - avoid deadlock when stray sockets are found.
-- Display correct value for ScronParameters in 'scontrol show config'.
* Changes in Slurm 20.11.0
==========================
-- x11 forwarding: fix race on setup that prevented X11 forwarding from
working within the new Interactive Step.
-- Fix various Coverity issues.
-- cons_tres - Fix DefCpuPerGPU
-- Make it so you can have a job with multiple partitions and multiple
reservations.
-- Fix primary controller assert when shutting down backup controllers.
-- Enforce invalid argument combinations with --ntasks-per-gpu
-- slurmrestd/auth_local - Verify username on slurm_rest_auth_p_apply()
-- Fix requeue of job on node failure.
-- Prevent a job from requesting too much memory if it
requests MEM_PER_CPUS and --threads-per-core < the number of threads
on a core.
-- slurmrestd - Avoid sending close header after body in
_operations_router_reject().
-- slurmrestd - Set new job environment for SLURM_JOB_NAME, SLURM_OPEN_MODE,
SLURM_JOB_DEPENDENCY, SLURM_PROFILE, SLURM_ACCTG_FREQ, SLURM_NETWORK and
SLURM_CPU_FREQ_REQ to match sbatch.
-- slurmrestd - Avoid defaulting open_mode to append for job submission.
-- Fix "scontrol takeover [backup]" hangs when specifying a backup > 1.
-- salloc now waits for PrologSlurmctld to finish before entering the shell.
* Changes in Slurm 20.11.0rc2
==============================
-- MySQL - Remove potential race condition when sending updates to a cluster
and commit_delay used.
-- Fixed regression in rc1 where sinfo et al would not show a node in a resv
state.
-- select/linear will now allocate up to nodes RealMemory when configured with
SelectTypeParameters=CR_Memory and --mem=0 specified. Previous behavior was
no memory accouted and no memory limits implied to job.
-- Remove unneeded lock check from running the slurmctld prolog for a job.
-- Fix duplicate key error on clean starts after slurmctld is killed.
-- Avoid double free of step_record_t in the slurmctld when node is removed
from config.
-- Zero out step_record_t's magic when freed.
-- Fix sacctmgr clearing QosLevel when trailing comma is used.
-- slurmrestd - fix a fatal() error when connecting over IPv6.
-- slurmrestd - add API to interface with slurmdbd.
-- mpi/cray_shasta - fix PMI port parsing for non-contiguous port ranges.
-- squeue and sinfo -O no longer repeat the last suffix specified.
-- cons_tres - fix regression regarding gpus with --cpus-per-task.
-- Avoid non-async-signal-safe functions calls in X11 fowarding which can
lead to the extern step terminating unexpectedly.
-- Don't send job completion email for revoked federation jobs.
-- Fix device or resource busy errors on cgroup cleanup on older kernels.
-- Avoid binding to IPv6 wildcard address in slurmd if IPv6 is not explicitly
enabled.
-- Make ntasks_per_gres work with cpus_per_task.
-- Various alterations in reference to ntasks_per_tres.
-- slurmrestd - multiple changes to make Slurm's OpenAPI spec compatible with
https://openapi-generator.tech/.
-- nss_slurm - avoid loading slurm.conf to avoid issues on configless systems,
or systems with config files loaded on shared storage.
-- scrontab - add cli_filter hooks.
-- job_submit/lua - expose a "cron_job" flag to identify jobs submitted
through scrontab.
-- PMIx - fix potential buffer overflows from use of unpackmem().
CVE-2020-27745.
-- X11 forwarding - fix potential leak of the magic cookie when sent as an
argument to the xauth command. CVE-2020-27746.
* Changes in Slurm 20.11.0rc1
==============================
-- Fix corner case issue with interrupted resource allocation requests.
-- Pack all gres information in the slurmd to send to the stepd to help
reduce calls in the stepd to read gres.conf.
-- The example systemd unit files have been changed to the "simple" type of
operation, and the daemon will now run in the foreground within systemd
instead of daemonizing itself.
-- Add --gpu-bind=mask_gpu reusability functionality if tasks > elements.
-- Add separate unversion libslurm_pmi.so library to use with libpmi.so.
-- Configurations including CR_Socket and AllowSpecResourcesUsage=NO will now
fatal if there are no allocatable sockets due to core specialization.
-- Make sacct get UID from database instead of from the username and a
system call. Add --use-local-uid option to sacct to use old behavior.
-- Limit number of jobs updated by as_mysql_flush_jobs_on_cluster() to avoid
boot loop failures in slurmdbd.
-- Add Autodetect option to NodeName line in gres.conf to override the global
Autodetect option.
-- Add NetworkRaw debugflag.
-- Make REQUEST_LAUNCH_PROLOG handler fail if PrologFlags includes Contain and
the credential has already expired when setting the memory limits.
-- Reject jobs that request more nodes than provided in job credential if
PrologFlags includes Contain.
-- Slurmdbd is now set to fatal if slurmdbd.conf file isn't owned by SlurmUser
or it's mode is not set to 0600.
-- libsrun/opt - use slurm_option_reset() when ignoring ntasks_per_node.
-- Removed "regression" script from testsuite. Please use regression.py.
-- Avoid communication issues if TreeWidth greatly exceeds the node count
for a job.
-- accounting_storage/filetxt has been removed as an option.
-- Update and validate reservations after loading from state save.
-- Update and validate reservations after setting node to down, drain or
updating node state.
-- Change reservation selection order to attempt to reserve unreserved nodes
first, followed by reserved nodes under OVERLAP|MAINT reservations, and
finally all nodes in the partition for MAINT reservations.
-- Add [Accounting]StorageParameters slurm[dbd].conf parameter.
-- Improve detection and logging of incompatible options involving the
REPLACE[_DOWN] flags when creating/updating reservations.
-- Export SLURMD_NODENAME envvar to HealthCheckProgram.
-- SlurmctldParameters=user_resv_delete which allows any user able to run
in a reservation to delete it.
-- Set default unit when parsing #BSUB -M to KB to match LSF documentation.
-- slurmrestd - fatal() when accept() returns an unexpected result.
-- slurmrestd - Parse multiple OpenAPI specifications for path resolution.
-- slurmrestd - Add v0.0.36 OpenAPI plugin.
-- slurmrestd/v0.0.36 - Add error schema.
-- slurmrestd/v0.0.36 - return array of nodes instead of dictionary.
-- slurmrestd/v0.0.36 - return array of partitions instead of dictionary
-- slurmrestd/v0.0.36 - return -1 (integer) instead of INFINITE (as a string)
-- slurmrestd/v0.0.36 - return array of pings instead of dictionary
-- slurmrestd/v0.0.36 - Simplify possible signals for canceling jobs.
-- slurmrestd/v0.0.36 - Simplify exclusive for jobs submissions.
-- slurmrestd/v0.0.36 - Simplify nodes for jobs submissions.
-- slurmrestd/v0.0.36 - Use "/slurm/v0.0.36/" as server instead of "/" to
simply naming for clients.
-- Add 'scontrol update res=name skip' to skip the current/next reoccurring
reservation.
-- Add ability for reservations to be accessed by Linux Groups.
-- Let users submit to multiple reservations as they can partitions.
-- Report a wider range of error codes for sbcast when opening a file.
-- Rename acct_gather_energy/cray_aries to acct_gather_energy/pm_counters.
-- Removed gres_alloc and gres_req from job_record_t.Tres should be used
instead.
-- The JobCompLoc URL endpoint when the JobCompType=jobcomp/elasticsearch
plugin is enabled is now fully configurable and the plugin no longer appends
a hardcoded "/slurm/jobcomp" index and type suffix to it.
-- Add check to the reservation create/update logic to prevent an inconsistent
state without nodes and with no ANY_NODES flag with either Licenses,
BurstBuffer and/or Watts.
-- slurmrestd - allow the host to be optional when specifying the address to
listen on.
-- slurmrestd - Log numerical service name when referencing host port pairs.
-- slurmrestd - Log host port information in RFC3986 format.
-- sview - Remove (long-broken) batch job submission option.
-- Dynamic Future Nodes - slurmds started with -F[<feature>] will be
associated with a nodename in Slurm that matches the same hardware
configuration.
-- SlurmctldParameters=cloud_reg_addrsa - Cloud nodes automatically get
NodeAddr and NodeHostname set from slurmd registration.
-- SlurmctldParameters=power_save[_min]_interval - Configure how often the
power save module looks to do work.
-- Add CLOUD state to sinfo --state filter list.
-- Add ability for sinfo state filtering to require all listed states.
-- Add the "Reserved" license count to 'scontrol show licenses'.
-- Don't display MailUser/MailType in scontrol show jobs if mail won't be sent.
-- Throw an error and ignore CpuSpecList if it cannot be translated to bitmap
of number of CPUs size.
-- Validate at submission that --hint is mutully exclusive with --cpu-bind,
--ntasks-per-core, --threads-per-core or -B.
-- Make --exclusive the default with srun as a step adding --overlap to
reverse behavior.
-- Add --whole option to srun to allocate all resources on a node
in an allocation.
-- Allow --threads-per-core to influence task layout/binding.
-- Remove support for "default_gbytes" option from SchedulerParameters.
-- gres.conf - Add new MultipleFiles configuration entry to allow a single
GRES to manage multiple device files simultaneously.
-- Fix scontrol write config to output OverSubscribe intead of Shared.
-- job_submit/lua - print/access oversubscribe variable with "oversubscribe".
-- Remove SallocDefaultCommand option.
-- Add support for an "Interactive Step", designed to be used with salloc to
launch a terminal on an allocated compute node automatically.
-- Add time specification: "now-<x>" (i.e. subtract from the present)
-- Add IPv6 support. Must be explicitly enabled with EnableIPv6 in
CommunicationParameters.
-- Add LaunchParameters=mpir_use_nodeaddr configuration option.
-- Allow use of a target directory with "srun --bcast", and change the default
filename to include the node name as well.
-- Set -fno-omit-frame-pointer compiler flag.
-- Add --mail-type=INVALID_DEPEND option to salloc, sbatch, and srun.
-- Fix passing names with commas to the slurmdbd.
-- squeue - put sorted start times of "N/A" or 0 at the end of the list.
-- Add correspond_after_task_cnt to SchedulerParameters
-- Fix node's not being considered unresponsive/down for ResumeTimeout after
reboot or power_up.
-- Change "scontrol reboot ASAP" to use next_state=resume logic.
-- Exclude HetJobs from GANG scheduling operations.
-- Add scrontab as a new command.
-- Enable -lnodes=#:gpus=# in #PBS/qsub -l nodes syntax.
-- Add admin-settable "Comment" field to each Node.
-- Fix show runaway and/on hidden partitions for >= Operator.
-- Add --ntasks-per-gpu option.
-- Add --gpu-bind=single option.
* Changes in Slurm 20.02.8
==========================
* Changes in Slurm 20.02.7
==========================
-- cons_tres - Fix DefCpuPerGPU
-- select/cray_aries - Correctly remove jobs/steps from blades using NPC.
-- Fix false positive oom-kill events on extern step termination when
jobacct_gather/cgroup configured.
-- Ensure SPANK prolog and epilog run without an explicit PlugStackConfig.
-- Fix missing xstrdup which could result in slurmctld segfault on array jobs.
-- Fix security issue in PrologSlurmctld and EpilogSlurmctld by always