From 2536acafc5264b50e9977a553e6aceb9e4cda2550696cd9223a3d03a1061925f Mon Sep 17 00:00:00 2001 From: Egbert Eich Date: Sat, 6 Jul 2019 17:41:00 +0000 Subject: [PATCH 1/9] Accepting request 713735 from home:eeich:branches:network:cluster - Add support for version updates on SLE: Update packages to a later version than the version supported originally on SLE will receive a version string in their package name. OBS-URL: https://build.opensuse.org/request/show/713735 OBS-URL: https://build.opensuse.org/package/show/network:cluster/slurm?expand=0&rev=92 --- slurm.changes | 7 ++ slurm.spec | 181 +++++++++++++++++++++++++++++++++----------------- 2 files changed, 126 insertions(+), 62 deletions(-) diff --git a/slurm.changes b/slurm.changes index 74683c7..b436c47 100644 --- a/slurm.changes +++ b/slurm.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sat Jul 6 11:21:08 UTC 2019 - Egbert Eich + +- Add support for version updates on SLE: Update packages to a + later version than the version supported originally on SLE + will receive a version string in their package name. + ------------------------------------------------------------------- Wed Feb 27 11:06:10 UTC 2019 - Christian Goll diff --git a/slurm.spec b/slurm.spec index 9a4513f..501283d 100644 --- a/slurm.spec +++ b/slurm.spec @@ -19,10 +19,27 @@ # Check file META in sources: update so_version to (API_CURRENT - API_AGE) %define so_version 33 %define ver 18.08.5 +%define _ver _18_08 %define dl_ver %{ver}-2 # so-version is 0 and seems to be stable %define pmi_so 0 +%define pname slurm + +%if 0%{?sle_version} == 120200 +%define base_ver 1702 +%endif +%if 0%{?sle_version} == 150000 +%define base_ver 1711 +%endif +%if 0%{?sle_version} == 150100 +%define base_ver 1808 +%endif + +%if 0%{?base_ver} > 0 && 0%{?base_ver} < %(echo %{_ver} | tr -d _) +%define upgrade 1 +%endif + # For anything newer than Leap 42.1 and SLE-12-SP1 build compatible to OpenHPC. %if 0%{suse_version} > 1320 || 0%{?sle_version} >= 120200 %define OHPC_BUILD 1 @@ -50,8 +67,8 @@ %endif %if 0%{?with_systemd} - %define slurm_u %name - %define slurm_g %name + %define slurm_u %pname + %define slurm_g %pname %else %define slurm_u daemon %define slurm_g root @@ -59,14 +76,14 @@ %define libslurm libslurm%{so_version} -Name: slurm +Name: %{pname}%{?upgrade:%{_ver}} Version: %{ver} Release: 0 Summary: Simple Linux Utility for Resource Management License: SUSE-GPL-2.0-with-openssl-exception Group: Productivity/Clustering/Computing Url: https://www.schedmd.com -Source: https://download.schedmd.com/slurm/%{name}-%{dl_ver}.tar.bz2 +Source: https://download.schedmd.com/slurm/%{pname}-%{dl_ver}.tar.bz2 Source1: slurm-rpmlintrc Patch0: slurm-2.4.4-rpath.patch Patch1: slurm-2.4.4-init.patch @@ -82,10 +99,14 @@ Patch10: pam_slurm_adopt-avoid-running-outside-of-the-sshd-PA.patch Patch11: pam_slurm_adopt-send_user_msg-don-t-copy-undefined-d.patch Patch12: pam_slurm_adopt-use-uid-to-determine-whether-root-is.patch -Requires: slurm-config = %{version} -Requires: slurm-node = %{version} -Recommends: slurm-doc = %{version} -Recommends: slurm-config-man = %{version} +%{?upgrade:Provides: %{pname} = %{version}} +%{?upgrade:Conflicts: %{pname}} + +Requires: %{name}-config = %{version} +Requires: (munge if %{name}-munge) +Requires(pre): %{name}-node = %{version} +Recommends: %{name}-doc = %{version} +Recommends: %{name}-config-man = %{version} BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: gtk2-devel @@ -131,22 +152,26 @@ management, scheduling and accounting modules. %package doc Summary: Documentation for SLURM Group: Documentation/HTML +%{?upgrade:Provides: %{pname}-doc = %{version}} +%{?upgrade:Conflicts: %{pname}-doc} %description doc Documentation (HTML) for the SLURM cluster managment software. -%package -n perl-slurm +%package -n perl-%{name} Summary: Perl API to SLURM Group: Development/Languages/Perl -Requires: slurm = %{version} +Requires: %{name} = %{version} %if 0%{?suse_version} < 1140 Requires: perl = %{perl_version} %else %{libperl_requires} %{perl_requires} %endif +%{?upgrade:Provides: perl-%{pname} = %{version}} +%{?upgrade:Conflicts: perl-%{pname}} -%description -n perl-slurm +%description -n perl-%{name} This package includes the Perl API to provide an interface to SLURM through Perl. @@ -172,8 +197,10 @@ with SLURM. Summary: Development package for SLURM Group: Development/Libraries/C and C++ Requires: %{libslurm} = %{version} +Requires: %{name} = %{version} Requires: libpmi%{pmi_so} = %{version} -Requires: slurm = %{version} +%{?upgrade:Provides: %{pname}-devel = %{version}} +%{?upgrade:Conflicts: %{pname}-devel} %description devel This package includes the header files for the SLURM API. @@ -182,7 +209,9 @@ This package includes the header files for the SLURM API. %package auth-none Summary: SLURM auth NULL implementation (no authentication) Group: Productivity/Clustering/Computing -Requires: slurm = %{version} +Requires: %{name} = %{version} +%{?upgrade:Provides: %{pname}-auth-none = %{version}} +%{?upgrade:Conflicts: %{pname}-auth-none} %description auth-none This package cobtains the SLURM NULL authentication module. @@ -191,11 +220,13 @@ This package cobtains the SLURM NULL authentication module. %package munge Summary: SLURM authentication and crypto implementation using Munge Group: Productivity/Clustering/Computing +Requires: %{name}-plugins = %{version} Requires: munge -Requires: slurm-plugins = %{version} BuildRequires: munge-devel -Obsoletes: slurm-auth-munge < %{version} -Provides: slurm-auth-munge = %{version} +Obsoletes: %{name}-auth-munge < %{version} +Provides: %{name}-auth-munge = %{version} +%{?upgrade:Provides: %{pname}-munge = %{version}} +%{?upgrade:Conflicts: %{pname}-munge} %description munge This package contains the SLURM authentication module for Chris Dunlap's Munge. @@ -203,6 +234,8 @@ This package contains the SLURM authentication module for Chris Dunlap's Munge. %package sview Summary: SLURM graphical interface Group: Productivity/Clustering/Computing +%{?upgrade:Provides: %{pname}-sview = %{version}} +%{?upgrade:Conflicts: %{pname}-sview} %description sview sview is a graphical user interface to get and update state information for @@ -212,10 +245,10 @@ jobs, partitions, and nodes managed by SLURM. %package slurmdbd Summary: SLURM database daemon Group: Productivity/Clustering/Computing -Requires: slurm-config = %{version} -Requires: slurm-plugins = %{version} -Requires: slurm-sql = %{version} -Recommends: slurm-munge = %{version} +Requires: %{name}-config = %{version} +Requires: %{name}-plugins = %{version} +Requires: %{name}-sql = %{version} +Recommends: %{name}-munge = %{version} %if 0%{?with_systemd} %{?systemd_requires} %else @@ -223,6 +256,8 @@ Requires(post): %insserv_prereq %fillup_prereq %endif Obsoletes: slurm-sched-wiki < %{version} Obsoletes: slurmdb-direct < %{version} +%{?upgrade:Provides: %{pname}-slurmdbd = %{version}} +%{?upgrade:Conflicts: %{pname}-slurmdb} %description slurmdbd The SLURM database daemon provides accounting of jobs in a database. @@ -231,6 +266,8 @@ The SLURM database daemon provides accounting of jobs in a database. %package sql Summary: Slurm SQL support Group: Productivity/Clustering/Computing +%{?upgrade:Provides: %{pname}-sql = %{version}} +%{?upgrade:Conflicts: %{pname}-sql} %description sql Contains interfaces to MySQL for use by SLURM. @@ -239,6 +276,8 @@ Contains interfaces to MySQL for use by SLURM. %package plugins Summary: SLURM plugins (loadable shared objects) Group: Productivity/Clustering/Computing +%{?upgrade:Provides: %{pname}-plugins = %{version}} +%{?upgrade:Conflicts: %{pname}-plugins} %description plugins This package contains the SLURM plugins (loadable shared objects) @@ -246,9 +285,11 @@ This package contains the SLURM plugins (loadable shared objects) %package torque Summary: Wrappers for transitition from Torque/PBS to SLURM Group: Productivity/Clustering/Computing +Requires: perl-%{name} = %{version} Requires: perl-Switch -Requires: perl-slurm = %{version} Provides: torque-client +%{?upgrade:Provides: %{pname}-torque = %{version}} +%{?upgrade:Conflicts: %{pname}-torque} %description torque Wrapper scripts for aiding migration from Torque/PBS to SLURM. @@ -256,7 +297,9 @@ Wrapper scripts for aiding migration from Torque/PBS to SLURM. %package openlava Summary: Wrappers for transitition from OpenLava/LSF to Slurm Group: Productivity/Clustering/Computing -Requires: perl-slurm = %{version} +Requires: perl-%{name} = %{version} +%{?upgrade:Provides: %{pname}-openlava = %{version}} +%{?upgrade:Conflicts: %{pname}-openlava} %description openlava Wrapper scripts for aiding migration from OpenLava/LSF to Slurm @@ -264,7 +307,9 @@ Wrapper scripts for aiding migration from OpenLava/LSF to Slurm %package seff Summary: Mail tool that includes job statistics in user notification email Group: Productivity/Clustering/Computing -Requires: perl-slurm = %{version} +Requires: perl-%{name} = %{version} +%{?upgrade:Provides: %{pname}-seff = %{version}} +%{?upgrade:Conflicts: %{pname}-seff} %description seff Mail program used directly by the SLURM daemons. On completion of a job, @@ -275,7 +320,9 @@ information in the email body. %package sjstat Summary: Perl tool to print SLURM job state information Group: Productivity/Clustering/Computing -Requires: slurm = %{version} +Requires: %{name} = %{version} +%{?upgrade:Provides: %{pname}-sjstat = %{version}} +%{?upgrade:Conflicts: %{pname}-sjstat} %if 0%{?suse_version} < 1140 Requires: perl = %{perl_version} %else @@ -288,7 +335,9 @@ This package contains a Perl tool to print SLURM job state information. %package pam_slurm Summary: PAM module for restricting access to compute nodes via SLURM Group: Productivity/Clustering/Computing -Requires: slurm-node = %{version} +Requires: %{name}-node = %{version} +%{?upgrade:Provides: %{pname}-pam_slurm = %{version}} +%{?upgrade:Conflicts: %{pname}-pam_slurm} BuildRequires: pam-devel %description pam_slurm @@ -300,7 +349,9 @@ or any user who has allocated resources on the node according to the SLURM. %package lua Summary: Lua API for SLURM Group: Development/Languages/Other -Requires: slurm = %{version} +Requires: %{name} = %{version} +%{?upgrade:Provides: %{pname}-lua = %{version}} +%{?upgrade:Conflicts: %{pname}-lua} BuildRequires: lua-devel %description lua @@ -310,14 +361,16 @@ through Lua. %package node Summary: Minimal slurm node Group: Productivity/Clustering/Computing -Requires: slurm-config = %{version} -Requires: slurm-plugins = %{version} +Requires: %{name}-config = %{version} +Requires: %{name}-plugins = %{version} Recommends: %{name}-munge %if 0%{?with_systemd} %{?systemd_requires} %else Requires(post): %insserv_prereq %fillup_prereq %endif +%{?upgrade:Provides: %{pname}-node = %{version}} +%{?upgrade:Conflicts: %{pname}-node} %description node This package contains just the minmal code to run a compute node. @@ -333,6 +386,8 @@ Requires(pre): shadow %if 0%{?with_systemd} %{?systemd_requires} %endif +%{?upgrade:Provides: %{pname}-config = %{version}} +%{?upgrade:Conflicts: %{pname}-config} %description config This package contains the slurm config files necessary direcories @@ -341,6 +396,8 @@ for the slurm daemons. %package config-man Summary: Config files and directories for slurm services Group: Documentation/Man +%{?upgrade:Provides: %{pname}-config-man = %{version}} +%{?upgrade:Conflicts: %{pname}-config-man} %description config-man Man pages for the SLURM cluster managment software config files. @@ -355,7 +412,7 @@ activated in the slurm configuration. Includes also utility the program sh5utils to merge this hdf5 files or extract data from them. %prep -%setup -q -n %{name}-%{dl_ver} +%setup -q -n %{pname}-%{dl_ver} %patch0 -p1 %patch1 -p1 %patch2 -p1 @@ -376,7 +433,7 @@ sh5utils to merge this hdf5 files or extract data from them. --disable-static \ --without-rpath \ %{!?have_netloc:--without-netloc} \ - --sysconfdir=%{_sysconfdir}/%{name} + --sysconfdir=%{_sysconfdir}/%{pname} make %{?_smp_mflags} %install @@ -390,11 +447,11 @@ ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcslurmd ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcslurmdbd ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcslurmctld install -d -m 0755 %{buildroot}/%{_tmpfilesdir}/ -cat <<-EOF > %{buildroot}/%{_tmpfilesdir}/%{name}.conf +cat <<-EOF > %{buildroot}/%{_tmpfilesdir}/%{pname}.conf # Create a directory with permissions 0700 owned by user slurm, group slurm d /var/run/slurm 0700 slurm slurm EOF -chmod 0644 %{buildroot}/%{_tmpfilesdir}/%{name}.conf +chmod 0644 %{buildroot}/%{_tmpfilesdir}/%{pname}.conf %else install -D -m755 etc/init.d.slurm %{buildroot}%{_initrddir}/slurm install -D -m755 etc/init.d.slurmdbd %{buildroot}%{_initrddir}/slurmdbd @@ -410,13 +467,13 @@ rm -f %{buildroot}%{_sbindir}/capmc_suspend rm -f %{buildroot}%{_sbindir}/capmc_resume rm -f %{buildroot}%{_sbindir}/slurmconfgen.py -install -D -m644 etc/cgroup.conf.example %{buildroot}/%{_sysconfdir}/%{name}/cgroup.conf -install -D -m644 etc/layouts.d.power.conf.example %{buildroot}/%{_sysconfdir}/%{name}/layouts.d/power.conf.example -install -D -m644 etc/layouts.d.power_cpufreq.conf.example %{buildroot}/%{_sysconfdir}/%{name}/layouts.d/power_cpufreq.conf.example -install -D -m644 etc/layouts.d.unit.conf.example %{buildroot}/%{_sysconfdir}/%{name}/layouts.d/unit.conf.example -install -D -m644 etc/slurm.conf.example %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf%{?OHPC_BUILD:.example} -install -D -m644 etc/slurmdbd.conf.example %{buildroot}/%{_sysconfdir}/%{name}/slurmdbd.conf -install -D -m644 etc/slurmdbd.conf.example %{buildroot}%{_sysconfdir}/%{name}/slurmdbd.conf.example +install -D -m644 etc/cgroup.conf.example %{buildroot}/%{_sysconfdir}/%{pname}/cgroup.conf +install -D -m644 etc/layouts.d.power.conf.example %{buildroot}/%{_sysconfdir}/%{pname}/layouts.d/power.conf.example +install -D -m644 etc/layouts.d.power_cpufreq.conf.example %{buildroot}/%{_sysconfdir}/%{pname}/layouts.d/power_cpufreq.conf.example +install -D -m644 etc/layouts.d.unit.conf.example %{buildroot}/%{_sysconfdir}/%{pname}/layouts.d/unit.conf.example +install -D -m644 etc/slurm.conf.example %{buildroot}/%{_sysconfdir}/%{pname}/slurm.conf%{?OHPC_BUILD:.example} +install -D -m644 etc/slurmdbd.conf.example %{buildroot}/%{_sysconfdir}/%{pname}/slurmdbd.conf +install -D -m644 etc/slurmdbd.conf.example %{buildroot}%{_sysconfdir}/%{pname}/slurmdbd.conf.example install -D -m755 contribs/sjstat %{buildroot}%{_bindir}/sjstat install -D -m755 contribs/sgather/sgather %{buildroot}%{_bindir}/sgather @@ -424,12 +481,12 @@ cp contribs/pam_slurm_adopt/README ../README.pam_slurm_adopt cp contribs/pam/README ../README.pam_slurm %if 0%{?OHPC_BUILD} # change slurm.conf for our needs -head -n -2 %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf.example | grep -v ReturnToService > %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf -sed -i 's#\(StateSaveLocation=\).*#\1%_localstatedir/lib/slurm#' %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf -sed -i 's#^\(SlurmdPidFile=\).*$#\1%{_localstatedir}/run/slurm/slurmd.pid#' %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf -sed -i 's#^\(SlurmctldPidFile=\).*$#\1%{_localstatedir}/run/slurm/slurmctld.pid#' %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf -sed -i 's#^\(SlurmdSpoolDir=\)/.*#\1%{_localstatedir}/spool/slurm#' %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf -cat >>%{buildroot}/%{_sysconfdir}/%{name}/slurm.conf < %{buildroot}/%{_sysconfdir}/%{pname}/slurm.conf +sed -i 's#\(StateSaveLocation=\).*#\1%_localstatedir/lib/slurm#' %{buildroot}/%{_sysconfdir}/%{pname}/slurm.conf +sed -i 's#^\(SlurmdPidFile=\).*$#\1%{_localstatedir}/run/slurm/slurmd.pid#' %{buildroot}/%{_sysconfdir}/%{pname}/slurm.conf +sed -i 's#^\(SlurmctldPidFile=\).*$#\1%{_localstatedir}/run/slurm/slurmctld.pid#' %{buildroot}/%{_sysconfdir}/%{pname}/slurm.conf +sed -i 's#^\(SlurmdSpoolDir=\)/.*#\1%{_localstatedir}/spool/slurm#' %{buildroot}/%{_sysconfdir}/%{pname}/slurm.conf +cat >>%{buildroot}/%{_sysconfdir}/%{pname}/slurm.conf < Date: Sat, 6 Jul 2019 20:02:33 +0000 Subject: [PATCH 2/9] Accepting request 713744 from home:eeich:branches:network:cluster - Do not build hdf5 support where not available. OBS-URL: https://build.opensuse.org/request/show/713744 OBS-URL: https://build.opensuse.org/package/show/network:cluster/slurm?expand=0&rev=93 --- slurm.changes | 5 +++++ slurm.spec | 13 +++++++++++++ 2 files changed, 18 insertions(+) diff --git a/slurm.changes b/slurm.changes index b436c47..f9e8f16 100644 --- a/slurm.changes +++ b/slurm.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sat Jul 6 18:05:33 UTC 2019 - Egbert Eich + +- Do not build hdf5 support where not available. + ------------------------------------------------------------------- Sat Jul 6 11:21:08 UTC 2019 - Egbert Eich diff --git a/slurm.spec b/slurm.spec index 501283d..4099390 100644 --- a/slurm.spec +++ b/slurm.spec @@ -56,6 +56,11 @@ %define have_netloc 1 %endif +%if 0%{?is_opensuse:1} || 0%{?sle_version} >= 150000 +%define have_hdf5 1 +%define have_boolean_deps 1 +%endif + %ifarch x86_64 %define have_libnuma 1 %else @@ -103,14 +108,20 @@ Patch12: pam_slurm_adopt-use-uid-to-determine-whether-root-is.patch %{?upgrade:Conflicts: %{pname}} Requires: %{name}-config = %{version} +%if 0%{?have_boolean_deps} Requires: (munge if %{name}-munge) +%else +Requires: munge +%endif Requires(pre): %{name}-node = %{version} Recommends: %{name}-doc = %{version} Recommends: %{name}-config-man = %{version} BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: gtk2-devel +%if 0%{?have_hdf5} BuildRequires: hdf5-devel +%endif BuildRequires: libbitmask-devel BuildRequires: libcpuset-devel BuildRequires: python @@ -1038,9 +1049,11 @@ exit 0 %{_mandir}/man5/topology.* %{_mandir}/man5/knl.conf.5.* +%if 0%{?have_hdf5} %files hdf5 %{_bindir}/sh5util %{_libdir}/slurm/acct_gather_profile_hdf5.so %{_mandir}/man1/sh5util.1.gz +%endif %changelog From d212ad0245f007105c8ff04293406338fbba835dc5f752277bf9891448705f1e Mon Sep 17 00:00:00 2001 From: Egbert Eich Date: Sun, 7 Jul 2019 04:27:16 +0000 Subject: [PATCH 3/9] Accepting request 713773 from home:eeich:branches:network:cluster - Update SLURM to 18.08.7: * Set debug statement to debug2 to avoid benign error messages. * Add SchedulerParameters option of bf_hetjob_immediate to attempt to start a heterogeneous job as soon as all of its components are determined able to do so. * Fix underflow causing decay thread to exit. * Fix main scheduler not considering hetjobs when building the job queue. * Fix regression for sacct to display old jobs without a start time. * Fix setting correct number of gres topology bits. * Update hetjobs pending state reason when appropriate. * Fix accounting_storage/filetxt's understanding of TRES. * Set Accrue time when not enforcing limits. * Fix srun segfault when requesting a hetjob with test_exec or bcast options. * Hide multipart priorities log message behind Priority debug flag. * sched/backfill - Make hetjobs sensitive to bf_max_job_start. * Fix slurmctld segfault due to job's partition pointer NULL dereference. * Fix issue with OR'ed job dependencies. * Add new job's bit_flags of INVALID_DEPEND to prevent rebuilding a job's dependency string when it has at least one invalid and purged dependency. * Promote federation unsynced siblings log message from debug to info. * burst_buffer/cray - fix slurmctld SIGABRT due to illegal read/writes. * burst_buffer/cray - fix memory leak due to unfreed job script content. * node_features/knl_cray - fix script_argv use-after-free. * burst_buffer/cray - fix script_argv use-after-free. * Fix invalid reads of size 1 due to non null-terminated string reads. * Add extra debug2 logs to identify why BadConstraints reason is set. OBS-URL: https://build.opensuse.org/request/show/713773 OBS-URL: https://build.opensuse.org/package/show/network:cluster/slurm?expand=0&rev=94 --- slurm-18.08.5-2.tar.bz2 | 3 --- slurm-18.08.7.tar.bz2 | 3 +++ slurm.changes | 31 +++++++++++++++++++++++++++++++ slurm.spec | 4 ++-- 4 files changed, 36 insertions(+), 5 deletions(-) delete mode 100644 slurm-18.08.5-2.tar.bz2 create mode 100644 slurm-18.08.7.tar.bz2 diff --git a/slurm-18.08.5-2.tar.bz2 b/slurm-18.08.5-2.tar.bz2 deleted file mode 100644 index 82c3475..0000000 --- a/slurm-18.08.5-2.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c45e9d1c18efa0ae0fbeaf0a244794a1288c6adb9e40cf4efc70c359ad083277 -size 6168687 diff --git a/slurm-18.08.7.tar.bz2 b/slurm-18.08.7.tar.bz2 new file mode 100644 index 0000000..3af2a57 --- /dev/null +++ b/slurm-18.08.7.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:854f922e4147af1ba861988455dbbb53ab5325f1ca138dce0ad553792b888743 +size 6186006 diff --git a/slurm.changes b/slurm.changes index f9e8f16..642ccf7 100644 --- a/slurm.changes +++ b/slurm.changes @@ -1,3 +1,34 @@ +------------------------------------------------------------------- +Sat Jul 6 20:07:53 UTC 2019 - Egbert Eich + +- Update SLURM to 18.08.7: + * Set debug statement to debug2 to avoid benign error messages. + * Add SchedulerParameters option of bf_hetjob_immediate to attempt to start + a heterogeneous job as soon as all of its components are determined able + to do so. + * Fix underflow causing decay thread to exit. + * Fix main scheduler not considering hetjobs when building the job queue. + * Fix regression for sacct to display old jobs without a start time. + * Fix setting correct number of gres topology bits. + * Update hetjobs pending state reason when appropriate. + * Fix accounting_storage/filetxt's understanding of TRES. + * Set Accrue time when not enforcing limits. + * Fix srun segfault when requesting a hetjob with test_exec or bcast + options. + * Hide multipart priorities log message behind Priority debug flag. + * sched/backfill - Make hetjobs sensitive to bf_max_job_start. + * Fix slurmctld segfault due to job's partition pointer NULL dereference. + * Fix issue with OR'ed job dependencies. + * Add new job's bit_flags of INVALID_DEPEND to prevent rebuilding a job's + dependency string when it has at least one invalid and purged dependency. + * Promote federation unsynced siblings log message from debug to info. + * burst_buffer/cray - fix slurmctld SIGABRT due to illegal read/writes. + * burst_buffer/cray - fix memory leak due to unfreed job script content. + * node_features/knl_cray - fix script_argv use-after-free. + * burst_buffer/cray - fix script_argv use-after-free. + * Fix invalid reads of size 1 due to non null-terminated string reads. + * Add extra debug2 logs to identify why BadConstraints reason is set. + ------------------------------------------------------------------- Sat Jul 6 18:05:33 UTC 2019 - Egbert Eich diff --git a/slurm.spec b/slurm.spec index 4099390..ffa4536 100644 --- a/slurm.spec +++ b/slurm.spec @@ -18,9 +18,9 @@ # Check file META in sources: update so_version to (API_CURRENT - API_AGE) %define so_version 33 -%define ver 18.08.5 +%define ver 18.08.7 %define _ver _18_08 -%define dl_ver %{ver}-2 +%define dl_ver %{ver} # so-version is 0 and seems to be stable %define pmi_so 0 From 69c4464cd53dafd48c086ecc24a5f860f67c74e3a8c1142f38548ba0fd8e06ee Mon Sep 17 00:00:00 2001 From: Egbert Eich Date: Sun, 7 Jul 2019 12:42:55 +0000 Subject: [PATCH 4/9] - Fix test for oS Factory OBS-URL: https://build.opensuse.org/package/show/network:cluster/slurm?expand=0&rev=95 --- slurm.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/slurm.spec b/slurm.spec index ffa4536..8b87725 100644 --- a/slurm.spec +++ b/slurm.spec @@ -56,7 +56,8 @@ %define have_netloc 1 %endif -%if 0%{?is_opensuse:1} || 0%{?sle_version} >= 150000 +%define is_factory ( 0%{?is_opensuse:1} && 0%{!?sle_version:1} ) +%if %is_factory || 0%{?sle_version} >= 150000 %define have_hdf5 1 %define have_boolean_deps 1 %endif @@ -135,8 +136,12 @@ BuildRequires: pkgconfig BuildRequires: postgresql-devel >= 8.0.0 BuildRequires: readline-devel %if 0%{?suse_version} > 1310 || 0%{?sle_version} + %if 0%{?sle_version} >= 120200 +BuildRequires: infiniband-diags-devel + %else BuildRequires: libibmad-devel BuildRequires: libibumad-devel + %endif %endif %if 0%{?suse_version} > 1140 BuildRequires: libhwloc-devel From db5ace2fb9375f84d327eeff0e9af0baf8b760a97a547c0216ab9488d45364b4 Mon Sep 17 00:00:00 2001 From: Egbert Eich Date: Sun, 7 Jul 2019 14:57:15 +0000 Subject: [PATCH 5/9] - Fix test for Factory OBS-URL: https://build.opensuse.org/package/show/network:cluster/slurm?expand=0&rev=96 --- slurm.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/slurm.spec b/slurm.spec index 8b87725..3d1c94f 100644 --- a/slurm.spec +++ b/slurm.spec @@ -56,8 +56,11 @@ %define have_netloc 1 %endif -%define is_factory ( 0%{?is_opensuse:1} && 0%{!?sle_version:1} ) -%if %is_factory || 0%{?sle_version} >= 150000 +%if 0%{?is_opensuse} && 0%{!?sle_version:1} +%define is_factory 1 +%endif + +%if 0%{?is_factory} || 0%{?sle_version} >= 150000 %define have_hdf5 1 %define have_boolean_deps 1 %endif From 5f6fddfc217c3a4db2ffab1344093aeec9f8a3585e681b25562275d1648e86dd Mon Sep 17 00:00:00 2001 From: Egbert Eich Date: Sun, 7 Jul 2019 19:03:24 +0000 Subject: [PATCH 6/9] - Remove stray BuildRequires for infiniband-diags-devel OBS-URL: https://build.opensuse.org/package/show/network:cluster/slurm?expand=0&rev=97 --- slurm.spec | 4 ---- 1 file changed, 4 deletions(-) diff --git a/slurm.spec b/slurm.spec index 3d1c94f..462345b 100644 --- a/slurm.spec +++ b/slurm.spec @@ -139,12 +139,8 @@ BuildRequires: pkgconfig BuildRequires: postgresql-devel >= 8.0.0 BuildRequires: readline-devel %if 0%{?suse_version} > 1310 || 0%{?sle_version} - %if 0%{?sle_version} >= 120200 -BuildRequires: infiniband-diags-devel - %else BuildRequires: libibmad-devel BuildRequires: libibumad-devel - %endif %endif %if 0%{?suse_version} > 1140 BuildRequires: libhwloc-devel From 5a25a5ea8bd6a146858571896353109af7e1f65aa0950c58cdc391e0aa173683 Mon Sep 17 00:00:00 2001 From: Egbert Eich Date: Mon, 8 Jul 2019 05:48:14 +0000 Subject: [PATCH 7/9] Accepting request 713918 from home:eeich:slurm-staging - Add BuildRequires to address warnings during build: * for libcurl-devel, libssh2-devel and rrdtool-devel * for libjson-c-devel and liblz4-devel where available, disable these with --without-json and --without-lz4 where not. * disable DataWarp (--without-datawarp). OBS-URL: https://build.opensuse.org/request/show/713918 OBS-URL: https://build.opensuse.org/package/show/network:cluster/slurm?expand=0&rev=98 --- slurm.changes | 10 ++++++++++ slurm.spec | 24 ++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/slurm.changes b/slurm.changes index 642ccf7..d6811d5 100644 --- a/slurm.changes +++ b/slurm.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Mon Jul 8 05:41:11 UTC 2019 - Egbert Eich + +- Add BuildRequires to address warnings during build: + * for libcurl-devel, libssh2-devel and rrdtool-devel + * for libjson-c-devel and liblz4-devel where available, + disable these with --without-json and --without-lz4 + where not. + * disable DataWarp (--without-datawarp). + ------------------------------------------------------------------- Sat Jul 6 20:07:53 UTC 2019 - Egbert Eich diff --git a/slurm.spec b/slurm.spec index 462345b..b33f4bf 100644 --- a/slurm.spec +++ b/slurm.spec @@ -49,7 +49,9 @@ %define with_systemd 1 %endif %if 0%{?suse_version:1} && 0%{?suse_version} <= 1140 -%define comp_at %defattr(-,root,root) + %define comp_at %defattr(-,root,root) +%else + %define have_json_c 1 %endif %if 0 @@ -63,6 +65,7 @@ %if 0%{?is_factory} || 0%{?sle_version} >= 150000 %define have_hdf5 1 %define have_boolean_deps 1 +%define have_lz4 1 %endif %ifarch x86_64 @@ -148,6 +151,15 @@ BuildRequires: libhwloc-devel BuildRequires: freeipmi-devel %endif %endif +BuildRequires: libcurl-devel +%if 0%{?have_json_c} +BuildRequires: libjson-c-devel +%endif +%if 0%{?have_lz4} +BuildRequires: liblz4-devel +%endif +BuildRequires: libssh2-devel +BuildRequires: rrdtool-devel %if 0%{?with_systemd} %{?systemd_requires} BuildRequires: systemd @@ -447,8 +459,13 @@ sh5utils to merge this hdf5 files or extract data from them. %configure --enable-shared \ --disable-static \ --without-rpath \ + --without-datawarp \ %{!?have_netloc:--without-netloc} \ - --sysconfdir=%{_sysconfdir}/%{pname} + --sysconfdir=%{_sysconfdir}/%{pname} \ +%{!?have_hdf5:--without-hdf5} \ +%{!?have_lz4:--without-lz4} \ +%{!?have_jasonc:--without-json} + make %{?_smp_mflags} %install @@ -980,6 +997,9 @@ exit 0 %endif %endif %{_libdir}/slurm/node_features_knl_generic.so +%{_libdir}/slurm/acct_gather_profile_influxdb.so +%{_libdir}/slurm/ext_sensors_rrd.so +%{_libdir}/slurm/jobcomp_elasticsearch.so %files lua %{?comp_at} From fa2138ebce9c2c2debe4778365e302f07ea76fa38d45432ccbc6c854520fe06d Mon Sep 17 00:00:00 2001 From: Egbert Eich Date: Mon, 8 Jul 2019 08:21:33 +0000 Subject: [PATCH 8/9] Accepting request 714002 from home:eeich:slurm-staging - Fix build dependency issue around libibmad-devel introduced in SLE-12-SP4. OBS-URL: https://build.opensuse.org/request/show/714002 OBS-URL: https://build.opensuse.org/package/show/network:cluster/slurm?expand=0&rev=99 --- slurm.changes | 6 ++++++ slurm.spec | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/slurm.changes b/slurm.changes index d6811d5..755247f 100644 --- a/slurm.changes +++ b/slurm.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Jul 8 08:19:23 UTC 2019 - Egbert Eich + +- Fix build dependency issue around libibmad-devel introduced + in SLE-12-SP4. + ------------------------------------------------------------------- Mon Jul 8 05:41:11 UTC 2019 - Egbert Eich diff --git a/slurm.spec b/slurm.spec index b33f4bf..4dd7b99 100644 --- a/slurm.spec +++ b/slurm.spec @@ -142,7 +142,11 @@ BuildRequires: pkgconfig BuildRequires: postgresql-devel >= 8.0.0 BuildRequires: readline-devel %if 0%{?suse_version} > 1310 || 0%{?sle_version} + %if 0%{?sle_version} >= 120400 && 0%{?sle_version} < 150000 +BuildRequires: infiniband-diags-devel + %else BuildRequires: libibmad-devel + %endif BuildRequires: libibumad-devel %endif %if 0%{?suse_version} > 1140 From 257676d4f20ecac73eedc857377dd0c0a36b9946f11c4ca2d4054afd20e58650 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Fri, 12 Jul 2019 18:09:50 +0000 Subject: [PATCH 9/9] Accepting request 714908 from home:mslacken:branches:network:cluster - added cray depend libraries to seperate package, as they are now built, since json is enabled - Updated to 18.0.7 for fixing CVE-2019-12838 and (bsc#1140709) * Update "xauth list" to use the same 10000ms timeout as the other xauth commands. * Fix issue in gres code to handle a gres cnt of 0. * Don't purge jobs if backfill is running. * Verify job is pending add/removing accrual time. * Don't abort when the job doesn't have an association that was removed before the job was able to make it to the database. * Set state_reason if select_nodes() fails job for QOS or Account. * Avoid seg_fault on referencing association without a valid_qos bitmap. * If Association/QOS is removed on a pending job set that job as ineligible. * When changing a jobs account/qos always make sure you remove the old limits. * Don't reset a FAIL_QOS or FAIL_ACCOUNT job reason until the qos or account changed. * Restore "sreport -T ALL" functionality. * Correctly typecast signals being sent through the api. * Properly initialize structures throughout Slurm. * Sync "numtask" squeue format option for jobs and steps to "numtasks". * Fix sacct -PD to avoid CA before start jobs. * Fix potential deadlock with backup slurmctld. * Fixed issue with jobs not appearing in sacct after dependency satisfied. * Fix showing non-eligible jobs when asking with -j and not -s. * Fix issue with backfill scheduler scheduling tasks of an array when not the head job. * accounting_storage/mysql - fix SIGABRT in the archive load logic. * accounting_storage/mysql - fix memory leak in the archive load logic. * Limit records per single SQL statement when loading archived data. OBS-URL: https://build.opensuse.org/request/show/714908 OBS-URL: https://build.opensuse.org/package/show/network:cluster/slurm?expand=0&rev=100 --- slurm-18.08.7.tar.bz2 | 3 -- slurm-18.08.8.tar.bz2 | 3 ++ slurm.changes | 85 +++++++++++++++++++++++++++++++++++++++++++ slurm.spec | 47 +++++++++++++++++++----- 4 files changed, 126 insertions(+), 12 deletions(-) delete mode 100644 slurm-18.08.7.tar.bz2 create mode 100644 slurm-18.08.8.tar.bz2 diff --git a/slurm-18.08.7.tar.bz2 b/slurm-18.08.7.tar.bz2 deleted file mode 100644 index 3af2a57..0000000 --- a/slurm-18.08.7.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:854f922e4147af1ba861988455dbbb53ab5325f1ca138dce0ad553792b888743 -size 6186006 diff --git a/slurm-18.08.8.tar.bz2 b/slurm-18.08.8.tar.bz2 new file mode 100644 index 0000000..c858bb3 --- /dev/null +++ b/slurm-18.08.8.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:043a048ac8a6fb6f6bf7c66434b05ed8b5b871e5e86e407c063d0c8cb4cb6e0d +size 6208426 diff --git a/slurm.changes b/slurm.changes index 755247f..4c7c8b6 100644 --- a/slurm.changes +++ b/slurm.changes @@ -1,3 +1,88 @@ +------------------------------------------------------------------- +Fri Jul 12 09:04:55 UTC 2019 - Christian Goll + +- added cray depend libraries to seperate package, as they are now + built, since json is enabled + +------------------------------------------------------------------- +Thu Jul 11 10:57:52 UTC 2019 - Christian Goll + +- Updated to 18.0.7 for fixing CVE-2019-12838 and (bsc#1140709) + * Update "xauth list" to use the same 10000ms timeout as the other xauth + commands. + * Fix issue in gres code to handle a gres cnt of 0. + * Don't purge jobs if backfill is running. + * Verify job is pending add/removing accrual time. + * Don't abort when the job doesn't have an association that was removed + before the job was able to make it to the database. + * Set state_reason if select_nodes() fails job for QOS or Account. + * Avoid seg_fault on referencing association without a valid_qos bitmap. + * If Association/QOS is removed on a pending job set that job as ineligible. + * When changing a jobs account/qos always make sure you remove the old limits. + * Don't reset a FAIL_QOS or FAIL_ACCOUNT job reason until the qos or + account changed. + * Restore "sreport -T ALL" functionality. + * Correctly typecast signals being sent through the api. + * Properly initialize structures throughout Slurm. + * Sync "numtask" squeue format option for jobs and steps to "numtasks". + * Fix sacct -PD to avoid CA before start jobs. + * Fix potential deadlock with backup slurmctld. + * Fixed issue with jobs not appearing in sacct after dependency satisfied. + * Fix showing non-eligible jobs when asking with -j and not -s. + * Fix issue with backfill scheduler scheduling tasks of an array + when not the head job. + * accounting_storage/mysql - fix SIGABRT in the archive load logic. + * accounting_storage/mysql - fix memory leak in the archive load logic. + * Limit records per single SQL statement when loading archived data. + * Fix unnecessary reloading of job submit plugins. + * Allow job submit plugins to be turned on/off with a reconfigure. + * Fix segfault when loading/unloading Lua job submit plugin multiple times. + * Fix printing duplicate error messages of jobs rejected by job submit plugin. + * Fix printing of job submit plugin messages of het jobs without pack id. + * Fix memory leak in group_cache.c + * Fix jobs stuck from FedJobLock when requeueing in a federation + * Fix requeueing job in a federation of clusters with differing associations + * sacctmgr - free memory before exiting in 'sacctmgr show runaway'. + * Fix seff showing memory overflow when steps tres mem usage is 0. + * Upon archive file name collision, create new archive file instead of + overwriting the old one to prevent lost records. + * Limit archive files to 50000 records per file so that archiving large + databases will succeed. + * Remove stray newlines in SPANK plugin error messages. + * Fix archive loading events. + * In select/cons_res: Only allocate 1 CPU per node with the --overcommit and + --nodelist options. + * Fix main scheduler from potentially not running through whole queue. + * cons_res/job_test - prevent a job from overallocating a node memory. + * cons_res/job_test - fix to consider a node's current allocated memory when + testing a job's memory request. + * Fix issue where multi-node job steps on cloud nodes wouldn't finish cleaning + up until the end of the job (rather than the end of the step). + * Fix issue with a 17.11 sbcast call to a 18.08 daemon. + * Add new job bit_flags of JOB_DEPENDENT. + * Make it so dependent jobs reset the AccrueTime and do not count against any + AccrueTime limits. + * Fix sacctmgr --parsable2 output for reservations and tres. + * Prevent slurmctld from potential segfault after job_start_data() called + for completing job. + * Fix jobs getting on nodes with "scontrol reboot asap". + * Record node reboot events to database. + * Fix node reboot failure message getting to event table. + * Don't write "(null)" to event table when no event reason exists. + * Fix minor memory leak when clearing runaway jobs. + * Avoid flooding slurmctld and logging when prolog complete RPC errors occur. + * Fix GCC 9 compiler warnings. + * Fix seff human readable memory string for values below a megabyte. + * Fix dump/load of rejected heterogeneous jobs. + * For heterogeneous jobs, do not count the each component against the QOS or + association job limit multiple times. + * slurmdbd - avoid reservation flag column corruption with the use of newer + flags, instead preserve the older flag fields that we can still fit in the + smallint field, and discard the rest. + * Fix security issue in accounting_storage/mysql plugin on archive file loads + by always escaping strings within the slurmdbd. CVE-2019-12838. + + ------------------------------------------------------------------- Mon Jul 8 08:19:23 UTC 2019 - Egbert Eich diff --git a/slurm.spec b/slurm.spec index 4dd7b99..5203a4b 100644 --- a/slurm.spec +++ b/slurm.spec @@ -18,7 +18,7 @@ # Check file META in sources: update so_version to (API_CURRENT - API_AGE) %define so_version 33 -%define ver 18.08.7 +%define ver 18.08.8 %define _ver _18_08 %define dl_ver %{ver} # so-version is 0 and seems to be stable @@ -442,6 +442,15 @@ Plugin to store accounting in the hdf5 file format. This plugin has to be activated in the slurm configuration. Includes also utility the program sh5utils to merge this hdf5 files or extract data from them. +%package cray +Summary: Cray specific plugins +Group: Productivity/Clustering/Computing + +%description cray +Plugins for specific cray hardware, includes power and knl node management. +Contains also cray specific documentation. + + %prep %setup -q -n %{pname}-%{dl_ver} %patch0 -p1 @@ -460,6 +469,7 @@ sh5utils to merge this hdf5 files or extract data from them. %patch12 -p1 %build +%define _lto_cflags %{nil} %configure --enable-shared \ --disable-static \ --without-rpath \ @@ -468,7 +478,7 @@ sh5utils to merge this hdf5 files or extract data from them. --sysconfdir=%{_sysconfdir}/%{pname} \ %{!?have_hdf5:--without-hdf5} \ %{!?have_lz4:--without-lz4} \ -%{!?have_jasonc:--without-json} +%{!?have_json_c:--without-json} make %{?_smp_mflags} @@ -915,7 +925,6 @@ exit 0 %{_libdir}/slurm/accounting_storage_filetxt.so %{_libdir}/slurm/accounting_storage_none.so %{_libdir}/slurm/accounting_storage_slurmdbd.so -%{_libdir}/slurm/acct_gather_energy_cray.so %{_libdir}/slurm/acct_gather_energy_ibmaem.so %{_libdir}/slurm/acct_gather_energy_none.so %{_libdir}/slurm/acct_gather_energy_rapl.so @@ -926,7 +935,6 @@ exit 0 %{_libdir}/slurm/burst_buffer_generic.so %{_libdir}/slurm/checkpoint_none.so %{_libdir}/slurm/checkpoint_ompi.so -%{_libdir}/slurm/core_spec_cray.so %{_libdir}/slurm/core_spec_none.so %{_libdir}/slurm/crypto_openssl.so %{_libdir}/slurm/ext_sensors_none.so @@ -942,7 +950,6 @@ exit 0 %{_libdir}/slurm/job_container_cncu.so %{_libdir}/slurm/job_container_none.so %{_libdir}/slurm/job_submit_all_partitions.so -%{_libdir}/slurm/job_submit_cray.so %{_libdir}/slurm/job_submit_defaults.so %{_libdir}/slurm/job_submit_logging.so %{_libdir}/slurm/job_submit_partition.so @@ -975,16 +982,13 @@ exit 0 %{_libdir}/slurm/sched_hold.so %{_libdir}/slurm/select_alps.so %{_libdir}/slurm/select_cons_res.so -%{_libdir}/slurm/select_cray.so %{_libdir}/slurm/select_linear.so %{_libdir}/slurm/select_serial.so %{_libdir}/slurm/slurmctld_nonstop.so -%{_libdir}/slurm/switch_cray.so %{_libdir}/slurm/switch_generic.so %{_libdir}/slurm/switch_none.so %{_libdir}/slurm/task_affinity.so %{_libdir}/slurm/task_cgroup.so -%{_libdir}/slurm/task_cray.so %{_libdir}/slurm/task_none.so %{_libdir}/slurm/topology_3d_torus.so %{_libdir}/slurm/topology_hypercube.so @@ -1004,6 +1008,14 @@ exit 0 %{_libdir}/slurm/acct_gather_profile_influxdb.so %{_libdir}/slurm/ext_sensors_rrd.so %{_libdir}/slurm/jobcomp_elasticsearch.so +%if !0%{?is_opensuse} +%{_libdir}/slurm/acct_gather_energy_cray.so +%{_libdir}/slurm/core_spec_cray.so +%{_libdir}/slurm/job_submit_cray.so +%{_libdir}/slurm/select_cray.so +%{_libdir}/slurm/switch_cray.so +%{_libdir}/slurm/task_cray.so +%endif %files lua %{?comp_at} @@ -1071,11 +1083,13 @@ exit 0 %{_mandir}/man5/ext_sensors.conf.* %{_mandir}/man5/slurm.* %{_mandir}/man5/cgroup.* -%{_mandir}/man5/cray.* %{_mandir}/man5/gres.* %{_mandir}/man5/nonstop.conf.5.* %{_mandir}/man5/topology.* %{_mandir}/man5/knl.conf.5.* +%if !0%{?is_opensuse} +%{_mandir}/man5/cray.* +%endif %if 0%{?have_hdf5} %files hdf5 @@ -1084,4 +1098,19 @@ exit 0 %{_mandir}/man1/sh5util.1.gz %endif +%files cray +# do not remove cray sepcific packages from SLES update +%if 0%{?is_opensuse} +%{_libdir}/slurm/acct_gather_energy_cray.so +%{_libdir}/slurm/core_spec_cray.so +%{_libdir}/slurm/job_submit_cray.so +%{_libdir}/slurm/select_cray.so +%{_libdir}/slurm/switch_cray.so +%{_libdir}/slurm/task_cray.so +%{_mandir}/man5/cray.* +%endif +%{_libdir}/slurm/burst_buffer_cray.so +%{_libdir}/slurm/node_features_knl_cray.so +%{_libdir}/slurm/power_cray.so + %changelog