diff --git a/slurm.conf b/slurm.conf index 28bd7a8..577cc09 100644 --- a/slurm.conf +++ b/slurm.conf @@ -123,7 +123,7 @@ SelectType=select/linear AccountingStorageType=accounting_storage/none #AccountingStorageUser= AccountingStoreJobComment=YES -ClusterName=local +ClusterName=cluster #DebugFlags= #JobCompHost= #JobCompLoc= diff --git a/slurm.spec b/slurm.spec index ee757bf..5e8ad69 100644 --- a/slurm.spec +++ b/slurm.spec @@ -1,71 +1,74 @@ -# ------------- -# Base Packages -# ------------- -# slurm -# slurm-devel -# slurm-doc -# slurm-gui -# slurm-libs -# slurm-plugins -# slurm-plugins-auth_none -# slurm-plugins-lua -# slurm-plugins-munge -# slurm-plugins-mysql -# slurm-plugins-pbs -# slurm-plugins-rrdtool -# slurm-slurmdbd +# Obsolete EVR +%global obs_evr 17.02.9-4 -# ----------------- -# Contribs Packages -# ----------------- -# slurm-contribs -# slurm-openlava -# slurm-perlapi -# slurm-plugins-pam_slurm -# slurm-torque +# Upstream tarballs use an additional release number +%global ups_rel 2 + +%if "%{ups_rel}" == "1" +%global name_version %{name}-%{version} +%else +%global name_version %{name}-%{version}-%{ups_rel} +%endif + +# Allow linkage with undefined symbols (disable -z,defs) +%undefine _strict_symbol_defs_build + +# Allow dlopen with unresolved symbols (disable -z,now) +%define _hardened_ldflags "-Wl,-z,lazy" Name: slurm -Version: 17.02.9 -Release: 4%{?dist} +Version: 17.11.3 +Release: 1%{?dist} Summary: Simple Linux Utility for Resource Management License: GPLv2 and BSD URL: https://slurm.schedmd.com/ -Source0: http://www.schedmd.com/download/latest/%{name}-%{version}.tar.bz2 +Source0: http://www.schedmd.com/download/latest/%{name_version}.tar.bz2 Source1: slurm.conf Source2: slurmdbd.conf Source3: slurm-sview.desktop Source4: slurm-128x128.png Source5: slurm-setuser.in -# upstream bug #2443: enable full relro operation -Patch0: slurm_weak_symbols.patch +# Upstream bug #4449: release-style versioning of libslurmfull +Patch0: slurm_libslurmfull_version.patch -# upstream bug #4362: link knl_generic plugin to libnuma if available -Patch1: slurm_knl_numa.patch - -# build-related patches +# Build-related patches Patch10: slurm_perlapi_rpaths.patch Patch11: slurm_html_doc_path.patch Patch12: slurm_doc_fix.patch # Fedora-related patches -Patch20: slurm_service_files.patch +Patch20: slurm_pmix_soname.patch +Patch21: slurm_service_files.patch + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: environment(modules) +BuildRequires: desktop-file-utils +BuildRequires: gcc +BuildRequires: perl-ExtUtils-MakeMaker +BuildRequires: perl-podlators +BuildRequires: pkgconf +BuildRequires: pkgconfig(check) +%{?systemd_requires} +BuildRequires: systemd -BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: hdf5-devel +BuildRequires: pam-devel +BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: pkgconfig(hwloc) BuildRequires: pkgconfig(libfreeipmi) BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(librrd) +BuildRequires: pkgconfig(libssh2) BuildRequires: pkgconfig(lua) BuildRequires: pkgconfig(mariadb) BuildRequires: pkgconfig(munge) BuildRequires: pkgconfig(ncurses) BuildRequires: pkgconfig(openssl) -BuildRequires: pam-devel -BuildRequires: pmix-devel -BuildRequires: readline-devel -BuildRequires: pkgconfig(librrd) +BuildRequires: pkgconfig(pmix) >= 2.0.0 BuildRequires: pkgconfig(zlib) +BuildRequires: readline-devel # follow arch exclusions for these devel packages %ifnarch s390 s390x %{arm} @@ -74,19 +77,15 @@ BuildRequires: libibumad-devel BuildRequires: numactl-devel %endif -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: desktop-file-utils -BuildRequires: gcc -BuildRequires: perl-ExtUtils-MakeMaker -BuildRequires: perl-podlators -BuildRequires: pkgconf -%{?systemd_requires} -BuildRequires: systemd - -Requires: %{name}-plugins%{?_isa} = %{version}-%{release} -Requires: %{name}-plugins-munge%{?_isa} = %{version}-%{release} Requires: munge +Requires: pmix >= 2.0.0 + +Obsoletes: %{name} <= %{obs_evr} +Obsoletes: %{name}-plugins <= %{obs_evr} +Obsoletes: %{name}-plugins-auth_none <= %{obs_evr} +Obsoletes: %{name}-plugins-lua <= %{obs_evr} +Obsoletes: %{name}-plugins-munge <= %{obs_evr} +Obsoletes: %{name}-plugins-mysql <= %{obs_evr} %description Slurm is an open source, fault-tolerant, and highly scalable @@ -119,57 +118,39 @@ and their respective man pages. %package libs Summary: Slurm shared libraries +Provides: pmi +Requires: environment(modules) %description libs Slurm shared libraries. -%package plugins -Summary: Slurm plugins (loadable shared objects) -%description plugins -Slurm plugins (loadable shared objects) supporting a wide variety of -architectures and behaviors. These basically provide the building blocks -with which Slurm can be configured. Note that some system specific plugins -are in other packages. - -%package plugins-auth_none -Summary: Slurm auth null implementation (no authentication) -%description plugins-auth_none -Slurm null authentication plugin. - -%package plugins-lua -Summary: Slurm lua plugins -%description plugins-lua -Slurm proctrack/lua and job_submit/lua plugins. - -%package plugins-munge -Summary: Slurm authentication and crypto plugins using Munge -%description plugins-munge -Slurm authentication and crypto implementation using Munge. Used to -authenticate user originating an RPC, digitally sign and/or encrypt messages. - -%package plugins-mysql -Summary: Slurm MySQL/MariaDb support -%description plugins-mysql -Slurm MySQL/MariaDb support plugins implementing interfaces to those -databases for accounting storage and job completion. - -%package plugins-pbs -Summary: Slurm torque (PBS) support -%description plugins-pbs -Slurm torque (PBS) support plugins. - -%package plugins-rrdtool +%package rrdtool Summary: Slurm rrdtool external sensor plugin -%description plugins-rrdtool +Requires: %{name}%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-plugins-rrdtool <= %{obs_evr} +%description rrdtool Slurm external sensor plugin for rrdtool. This package is separated from the base plugins package due to gui dependencies which are unneeded if not using this plugin. +%package slurmctld +Summary: Slurm controller daemon +Requires: %{name}%{?_isa} = %{version}-%{release} +Obsoletes: %{name} <= %{obs_evr} +%description slurmctld +Slurm controller daemon. Used to manage the job queue, schedule jobs, +and dispatch RPC messages to the slurmd processon the compute nodes +to launch jobs. + +%package slurmd +Summary: Slurm compute node daemon +Requires: %{name}%{?_isa} = %{version}-%{release} +Obsoletes: %{name} <= %{obs_evr} +%description slurmd +Slurm compute node daemon. Used to launch jobs on compute nodes + %package slurmdbd Summary: Slurm database daemon -# Use with auth_none or munge plugins for authentication -Requires: %{name}-plugins-munge%{?_isa} = %{version}-%{release} -Requires: %{name}-plugins-mysql%{?_isa} = %{version}-%{release} -Requires: munge +Requires: %{name}%{?_isa} = %{version}-%{release} %description slurmdbd Slurm database daemon. Used to accept and process database RPCs and upload database changes to slurmctld daemons on each cluster. @@ -200,29 +181,31 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release} Perl API package for Slurm. This package includes the perl API to provide a helpful interface to Slurm through Perl. -%package plugins-pam_slurm +%package pam_slurm Summary: Slurm pam modules Requires: %{name}-libs%{?_isa} = %{version}-%{release} -%description plugins-pam_slurm +Obsoletes: %{name}-plugins-pam_slurm <= %{obs_evr} +%description pam_slurm The pam_slurm module restricts access to compute nodes in a cluster where Slurm is in use. Also includes the pam_slurm_adopt plugin for "adopting" connections into slurm jobs. %package torque Summary: Torque/PBS wrappers for transition from Torque/PBS to Slurm +Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-perlapi%{?_isa} = %{version}-%{release} -Requires: %{name}-plugins-pbs%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-plugins-pbs <= %{obs_evr} %description torque Torque wrapper scripts used for helping migrate from Torque/PBS to Slurm. %prep -%setup -q -n %{name}-%{version} +%setup -q -n %{name_version} %patch0 -p1 -%patch1 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 %patch20 -p1 +%patch21 -p1 cp %SOURCE1 etc/slurm.conf cp %SOURCE1 etc/slurm.conf.example cp %SOURCE2 etc/slurmdbd.conf @@ -232,7 +215,7 @@ mkdir -p share/icons/hicolor/128x128/apps cp %SOURCE3 share/applications/%{name}-sview.desktop cp %SOURCE4 share/icons/hicolor/128x128/apps/%{name}.png mkdir -p extras -cp %SOURCE5 extras/slurm-setuser.in +cp %SOURCE5 extras/%{name}-setuser.in %build %{__aclocal} -I auxdir @@ -242,28 +225,30 @@ cp %SOURCE5 extras/slurm-setuser.in --prefix=%{_prefix} \ --sysconfdir=%{_sysconfdir}/%{name} \ --with-pam_dir=%{_libdir}/security \ + --with-pmix \ --enable-shared \ + --enable-x11 \ --disable-static \ --disable-debug \ --disable-developer \ - --disable-bluegene \ - --disable-native-cray \ - --disable-cray-network \ --disable-salloc-background \ --disable-multiple-slurmd \ --disable-partial_attach \ - --without-rpath \ + --with-shared-libslurm \ + --without-rpath # patch libtool to remove rpaths sed -i 's|^hardcode_into_libs=.*|hardcode_into_libs=no|g' libtool +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool -# configure the extras/slurm-setuser script +# configure extras/slurm-setuser script sed -r ' s|^dir_conf=.*|dir_conf="%{_sysconfdir}/%{name}"|g; s|^dir_log=.*|dir_log="%{_var}/log/%{name}"|g; s|^dir_run=.*|dir_run="%{_rundir}/%{name}"|g; s|^dir_spool=.*|dir_spool="%{_var}/spool/%{name}"|g; s|^dir_tmpfiles_d=.*|dir_tmpfiles_d="%{_tmpfilesdir}"|g;' \ - extras/slurm-setuser.in > extras/slurm-setuser + extras/%{name}-setuser.in > extras/%{name}-setuser # build base packages %make_build V=1 @@ -273,7 +258,9 @@ s|^dir_tmpfiles_d=.*|dir_tmpfiles_d="%{_tmpfilesdir}"|g;' \ PERL_MM_PARAMS="INSTALLDIRS=vendor" %make_build contrib V=1 %check -%{__make} check +# The test binaries need LD_LIBRARY_PATH to find the compiled slurm library +# in the build tree. +LD_LIBRARY_PATH="%{buildroot}%{_libdir};%{_libdir}" %{__make} check %install %make_install @@ -305,11 +292,11 @@ install -m 0644 -p etc/slurmdbd.service %{buildroot}%{_unitdir} # tmpfiles.d file for creating /run/slurm dir after reboot install -d -m 0755 %{buildroot}%{_tmpfilesdir} -cat >%{buildroot}%{_tmpfilesdir}/slurm.conf <%{buildroot}%{_tmpfilesdir}/%{name}.conf <%{buildroot}%{_sysconfdir}/logrotate.d/%{name} <%{buildroot}%{_modulesdir}/pmi/%{name}-%{_arch} <%{buildroot}%{_libdir}/pkgconfig/slurm.pc <%{buildroot}%{_libdir}/pkgconfig/%{name}.pc <%{buildroot}%{_libdir}/%{name}/lib/pkgconfig/pmi.pc <%{buildroot}%{_libdir}/%{name}/lib/pkgconfig/pmi2.pc </dev/null || : - -%postun gui -if [ $1 -eq 0 ] ; then - /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null - /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : -fi - -%posttrans gui -/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +%post slurmd +%systemd_post slurmd.service -%post libs -p /sbin/ldconfig +%preun slurmd +%systemd_preun slurmd.service -%postun libs -p /sbin/ldconfig +%postun slurmd +%systemd_postun_with_restart slurmd.service %post slurmdbd %systemd_post slurmdbd.service @@ -752,38 +729,49 @@ fi %systemd_postun_with_restart slurmdbd.service %changelog +* Sat Feb 10 2018 Philip Kovacs - 17.11.3-1 +- Release of 17.11 series +- Re-aligned rpm packaging to be closer to upstream +- Enabled new slurm native X11 support using ssh2 +- Enabled new shared libslurm for smaller code size +- Enabled `check` unit testing via check-devel +- Added environment module support for pmi/slurm +- Add dependency to pmix +- Removed gtk-update-icon-cache scriptlets +- Use new ldconfig_scriptlets macro + * Fri Feb 09 2018 Fedora Release Engineering - 17.02.9-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Thu Nov 16 2017 Philip Kovacs - 17.02.9-3 -- Added patch to enable full relro builds and operation. -- Added patch to link knl_generic plugin to libnuma if available. -- Remove the following cray or bluegene-only plugins: -- job_container/cncu, select/alps, select/bluegene. -- Rename slurm_setuser to slurm-setuser. -- Minor corrections to slurm.conf. +- Added patch to enable full relro builds and operation +- Added patch to link knl_generic plugin to libnuma if available +- Remove the following cray or bluegene-only plugins +- job_container/cncu, select/alps, select/bluegene +- Rename slurm_setuser to slurm-setuser +- Minor corrections to slurm.conf * Wed Nov 1 2017 Philip Kovacs - 17.02.9-2 -- Correct desktop categories for rpmgrill.desktop-lint. +- Correct desktop categories for rpmgrill.desktop-lint * Wed Nov 1 2017 Philip Kovacs - 17.02.9-1 -- Version bump to close CVE-2017-15566. -- Adjusted patches per closure of upstream bug #3942. -- Added desktop categories per rpmgrill.desktop-lint. +- Version bump to close CVE-2017-15566 +- Adjusted patches per closure of upstream bug #3942 +- Added desktop categories per rpmgrill.desktop-lint * Wed Oct 25 2017 Philip Kovacs - 17.02.8-1 -- Version bump, patches adjusted. +- Version bump, patches adjusted * Thu Oct 5 2017 Philip Kovacs - 17.02.7-4 - Patch changes per resolution of upstream bug #4101: -- salloc/sbatch/srun: must be root to use --uid/--gid options. -- salloc: supplemental groups dropped after setuid. +- salloc/sbatch/srun: must be root to use --uid/--gid options +- salloc: supplemental groups dropped after setuid * Thu Oct 5 2017 Philip Kovacs - 17.02.7-3 -- Added BuildRequires gcc and minor packaging conformance items. +- Added BuildRequires gcc and minor packaging conformance items * Sat Sep 16 2017 Philip Kovacs - 17.02.7-2 -- Removed unneeded Requires(pre). +- Removed unneeded Requires(pre) * Thu Sep 14 2017 Philip Kovacs - 17.02.7-1 -- Packaging for Fedora. +- Packaging for Fedora diff --git a/slurm_doc_fix.patch b/slurm_doc_fix.patch index ae4a4da..6a968b9 100644 --- a/slurm_doc_fix.patch +++ b/slurm_doc_fix.patch @@ -1,11 +1,13 @@ ---- a/doc/man/man5/burst_buffer.conf.5 2017-08-15 23:22:24.333180212 -0400 -+++ b/doc/man/man5/burst_buffer.conf.5 2017-08-15 23:23:45.224298397 -0400 -@@ -31,18 +31,18 @@ +diff --git a/doc/man/man5/burst_buffer.conf.5 b/doc/man/man5/burst_buffer.conf.5 +index 34ee651513..01f47c1383 100644 +--- a/doc/man/man5/burst_buffer.conf.5 ++++ b/doc/man/man5/burst_buffer.conf.5 +@@ -31,18 +31,18 @@ The configuration parameters available include: \fBAllowUsers\fR Comma separated list of user names and/or IDs permitted to use burst buffers. The options \fBAllowUsers\fR and \fBDenyUsers\fR can not both be specified. -By default all users are permitted to use burst buffers. -+By default all users are permitted to use burst buffers. Possible future ++By default all users are permitted to use burst buffers. Possible future +enhancement for generic plugin. -.\ Possible future enhancement for generic plugin @@ -30,7 +32,7 @@ .TP \fBCreateBuffer\fR -@@ -195,8 +195,8 @@ +@@ -193,8 +193,8 @@ By default there is a 5 second timeout for the validation operations. AllowUsers=alan,brenda .br PrivateData=true @@ -41,3 +43,29 @@ .br # .br +diff --git a/doc/man/man5/slurm.conf.5 b/doc/man/man5/slurm.conf.5 +index 6a9c753f51..56da9b7573 100644 +--- a/doc/man/man5/slurm.conf.5 ++++ b/doc/man/man5/slurm.conf.5 +@@ -3434,7 +3434,7 @@ + \fB\-D\fR command line option) the \fBSlurmdSyslogDebug\fR configuration + parameter will be ignored. + The default value is \fBquiet\fR unless there is no configured +-\fBSlurmdLogFile\fR, in which case the default value will be \fBfatal\fR so ++\fBSlurmdLogFile\fR, in which case the default value will be \fBfatal\fRso + that fatal errors are logged somewhere. + + .RS +diff --git a/doc/man/man5/slurmdbd.conf.5 b/doc/man/man5/slurmdbd.conf.5 +index d8e2ebe286..1dc4f789a7 100644 +--- a/doc/man/man5/slurmdbd.conf.5 ++++ b/doc/man/man5/slurmdbd.conf.5 +@@ -276,7 +276,7 @@ If the slurmdbd daemon is run in the foreground (started with the \fB\-D\fR + command line option) the \fBDebugLevelSyslog\fR configuration parameter + will be ignored. + The default value is \fBquiet\fR unless there is no configured +-\fBSlurmdLogFile\fR, in which case the default value will be \fBfatal\bR so ++\fBSlurmdLogFile\fR, in which case the default value will be \fBfatal\bRso + that fatal errors are logged somewhere. + + .RS diff --git a/slurm_knl_numa.patch b/slurm_knl_numa.patch deleted file mode 100644 index d13a683..0000000 --- a/slurm_knl_numa.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/plugins/node_features/knl_generic/Makefile.am b/src/plugins/node_features/knl_generic/Makefile.am -index 11da24c075..4633e2de46 100644 ---- a/src/plugins/node_features/knl_generic/Makefile.am -+++ b/src/plugins/node_features/knl_generic/Makefile.am -@@ -8,7 +8,7 @@ AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src/common - - pkglib_LTLIBRARIES = node_features_knl_generic.la - node_features_knl_generic_la_SOURCES = node_features_knl_generic.c --node_features_knl_generic_la_LDFLAGS = $(SO_LDFLAGS) $(PLUGIN_FLAGS) -+node_features_knl_generic_la_LDFLAGS = $(SO_LDFLAGS) $(NUMA_LIBS) $(PLUGIN_FLAGS) - - force: - $(node_features_knl_generic_la_LIBADD) : force diff --git a/slurm_libslurmfull_version.patch b/slurm_libslurmfull_version.patch new file mode 100644 index 0000000..9f65ebf --- /dev/null +++ b/slurm_libslurmfull_version.patch @@ -0,0 +1,27 @@ +diff --git a/src/api/Makefile.am b/src/api/Makefile.am +index 80c5c60f12..c7334fe9f8 100644 +--- a/src/api/Makefile.am ++++ b/src/api/Makefile.am +@@ -61,12 +61,7 @@ libpmi_current = 0 + libpmi_age = 0 + libpmi_rev = 0 + +-lib_LTLIBRARIES = libslurm.la libpmi.la +- +-# The ABI of libslurmfull can easily change from 1 micro version to another. +-# To avoid issue we will install this lib alongside the plugins to protect +-# from version issues. +-pkglib_LTLIBRARIES = libslurmfull.la ++lib_LTLIBRARIES = libslurm.la libpmi.la libslurmfull.la + + # BUILT_SOURCES tells automake that when "make" is called, these targets + # need to be built before anything else. For instance, this takes care +@@ -156,7 +151,7 @@ libslurmfull_la_SOURCES = + libslurmfull_la_LIBADD = $(convenience_libs) + libslurmfull_la_LDFLAGS = \ + $(LIB_LDFLAGS) \ +- -avoid-version \ ++ -release $(SLURM_VERSION_STRING) \ + $(FULL_OTHER_FLAGS) + # + # The libpmi_la_LIBADD specification below causes libpmi.la to relink diff --git a/slurm_pmix_soname.patch b/slurm_pmix_soname.patch new file mode 100644 index 0000000..d598016 --- /dev/null +++ b/slurm_pmix_soname.patch @@ -0,0 +1,24 @@ +diff --git a/src/plugins/mpi/pmix/mpi_pmix.c b/src/plugins/mpi/pmix/mpi_pmix.c +index 2d4c5d9dc9..dedb983f92 100644 +--- a/src/plugins/mpi/pmix/mpi_pmix.c ++++ b/src/plugins/mpi/pmix/mpi_pmix.c +@@ -79,8 +79,10 @@ const char plugin_name[] = "PMIx plugin"; + + #if (HAVE_PMIX_VER == 1) + const char plugin_type[] = "mpi/pmix_v1"; ++const char libpmix_soname[] = "libpmix.so.1"; + #elif (HAVE_PMIX_VER == 2) + const char plugin_type[] = "mpi/pmix_v2"; ++const char libpmix_soname[] = "libpmix.so.2"; + #endif + + const uint32_t plugin_version = SLURM_VERSION_NUMBER; +@@ -103,7 +105,7 @@ static void *_libpmix_open(void) + #elif defined PMIXP_V2_LIBPATH + xstrfmtcat(full_path, "%s/", PMIXP_V2_LIBPATH); + #endif +- xstrfmtcat(full_path, "libpmix.so"); ++ xstrfmtcat(full_path, libpmix_soname); + lib_plug = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL); + xfree(full_path); + diff --git a/slurm_service_files.patch b/slurm_service_files.patch index a164ef4..1f3087b 100644 --- a/slurm_service_files.patch +++ b/slurm_service_files.patch @@ -1,17 +1,21 @@ ---- a/etc/slurmctld.service.in 2017-08-14 13:48:43.000000000 -0400 -+++ b/etc/slurmctld.service.in 2017-08-21 13:35:26.472209176 -0400 -@@ -8,7 +8,7 @@ +diff --git a/etc/slurmctld.service.in b/etc/slurmctld.service.in +index ebf92b0da4..d13a653339 100644 +--- a/etc/slurmctld.service.in ++++ b/etc/slurmctld.service.in +@@ -8,7 +8,7 @@ Type=forking EnvironmentFile=-/etc/sysconfig/slurmctld ExecStart=@sbindir@/slurmctld $SLURMCTLD_OPTIONS ExecReload=/bin/kill -HUP $MAINPID -PIDFile=/var/run/slurmctld.pid +PIDFile=/var/run/slurm/slurmctld.pid + @SYSTEMD_TASKSMAX_OPTION@ [Install] - WantedBy=multi-user.target ---- a/etc/slurmd.service.in 2017-08-14 13:48:43.000000000 -0400 -+++ b/etc/slurmd.service.in 2017-08-21 14:45:23.485061312 -0400 -@@ -8,7 +8,7 @@ +diff --git a/etc/slurmd.service.in b/etc/slurmd.service.in +index 2e20bb33a3..263bd8aa77 100644 +--- a/etc/slurmd.service.in ++++ b/etc/slurmd.service.in +@@ -8,7 +8,7 @@ Type=forking EnvironmentFile=-/etc/sysconfig/slurmd ExecStart=@sbindir@/slurmd $SLURMD_OPTIONS ExecReload=/bin/kill -HUP $MAINPID @@ -20,14 +24,16 @@ KillMode=process LimitNOFILE=51200 LimitMEMLOCK=infinity ---- a/etc/slurmdbd.service.in 2017-08-14 13:48:43.000000000 -0400 -+++ b/etc/slurmdbd.service.in 2017-08-21 14:47:56.134071820 -0400 -@@ -8,7 +8,7 @@ +diff --git a/etc/slurmdbd.service.in b/etc/slurmdbd.service.in +index 5f8f73c7f1..a0aede6feb 100644 +--- a/etc/slurmdbd.service.in ++++ b/etc/slurmdbd.service.in +@@ -8,7 +8,7 @@ Type=forking EnvironmentFile=-/etc/sysconfig/slurmdbd ExecStart=@sbindir@/slurmdbd $SLURMDBD_OPTIONS ExecReload=/bin/kill -HUP $MAINPID -PIDFile=/var/run/slurmdbd.pid +PIDFile=/var/run/slurm/slurmdbd.pid + @SYSTEMD_TASKSMAX_OPTION@ [Install] - WantedBy=multi-user.target diff --git a/slurm_weak_symbols.patch b/slurm_weak_symbols.patch deleted file mode 100644 index 02507e2..0000000 --- a/slurm_weak_symbols.patch +++ /dev/null @@ -1,153 +0,0 @@ -diff --git a/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c b/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c -index ca0341c1eb..08d7baaa61 100644 ---- a/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c -+++ b/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c -@@ -60,6 +60,15 @@ - - #define BUFFER_SIZE 4096 - -+/* Declare these functions as weak in order to support full relro builds. */ -+#if defined(__GNUC__) && defined(__ELF__) -+/* TEST_CASE: sacct vs slurmctld */ -+void build_array_str(struct job_record *job_ptr) __attribute__((weak)); -+struct job_record *find_job_record(uint32_t job_id) __attribute__((weak)); -+void lock_slurmctld (slurmctld_lock_t lock_levels) __attribute__((weak)); -+void unlock_slurmctld (slurmctld_lock_t lock_levels) __attribute__((weak)); -+#endif -+ - /* These are defined here so when we link with something other than - * the slurmctld we will have these symbols defined. They will get - * overwritten when linking with the slurmctld. -diff --git a/src/plugins/jobacct_gather/cgroup/jobacct_gather_cgroup.h b/src/plugins/jobacct_gather/cgroup/jobacct_gather_cgroup.h -index 33f9bcb05e..7bbd99f93d 100644 ---- a/src/plugins/jobacct_gather/cgroup/jobacct_gather_cgroup.h -+++ b/src/plugins/jobacct_gather/cgroup/jobacct_gather_cgroup.h -@@ -39,6 +39,9 @@ - * Copyright (C) 2002 The Regents of the University of California. - \*****************************************************************************/ - -+#ifndef __JOBACCT_GATHER_CGROUP_H__ -+#define __JOBACCT_GATHER_CGROUP_H__ -+ - #include "src/common/slurm_jobacct_gather.h" - #include "src/common/xcgroup_read_config.h" - #include "src/slurmd/common/xcgroup.h" -@@ -76,3 +79,31 @@ extern int jobacct_gather_cgroup_memory_attach_task( - /* pid_t pid, jobacct_id_t *jobacct_id); */ - - extern char* jobacct_cgroup_create_slurm_cg (xcgroup_ns_t* ns); -+ -+/* Declare these functions as weak in order to support full relro builds. */ -+#if defined(__GNUC__) && defined(__ELF__) -+/* TEST_CASE: slurmctld vs slurmd */ -+int xcgroup_add_pids(xcgroup_t* cg, pid_t* pids, int npids) -+ __attribute__((weak)); -+int xcgroup_create(xcgroup_ns_t* cgns, xcgroup_t* cg, -+ char* uri, uid_t uid, gid_t gid) __attribute__((weak)); -+int xcgroup_delete(xcgroup_t* cg) __attribute__((weak)); -+void xcgroup_destroy(xcgroup_t* cg) __attribute__((weak)); -+int xcgroup_get_param(xcgroup_t* cg, char* param, char **content, -+ size_t *csize) __attribute__((weak)); -+int xcgroup_ns_create(slurm_cgroup_conf_t *conf, -+ xcgroup_ns_t* cgns, char* mnt_args, char* subsys) -+ __attribute__((weak)); -+int xcgroup_instantiate(xcgroup_t* cg) __attribute__((weak)); -+int xcgroup_lock(xcgroup_t* cg) __attribute__((weak)); -+void xcgroup_ns_destroy(xcgroup_ns_t* cgns) __attribute__((weak)); -+int xcgroup_set_param(xcgroup_t* cg, char* parameter, char* content) -+ __attribute__((weak)); -+int xcgroup_set_uint32_param(xcgroup_t* cg, char* parameter, uint32_t value) -+ __attribute__((weak)); -+int xcgroup_unlock(xcgroup_t* cg) __attribute__((weak)); -+int xcpuinfo_fini(void) __attribute__((weak)); -+int xcpuinfo_init(void) __attribute__((weak)); -+#endif -+ -+#endif /* __JOBACCT_GATHER_CGROUP_H__ */ -diff --git a/src/plugins/jobacct_gather/common/common_jag.h b/src/plugins/jobacct_gather/common/common_jag.h -index eff761638e..6a28a40af2 100644 ---- a/src/plugins/jobacct_gather/common/common_jag.h -+++ b/src/plugins/jobacct_gather/common/common_jag.h -@@ -74,4 +74,11 @@ extern void jag_common_poll_data( - List task_list, bool pgid_plugin, uint64_t cont_id, - jag_callbacks_t *callbacks, bool profile); - -+/* Declare these functions as weak in order to support full relro builds. */ -+#if defined(__GNUC__) && defined(__ELF__) -+/* TEST_CASE: slurmctld vs slurmd */ -+int proctrack_g_get_pids(uint64_t cont_id, pid_t **pids, int *npids) -+ __attribute__((weak)); -+#endif -+ - #endif -diff --git a/src/plugins/node_features/knl_generic/node_features_knl_generic.c b/src/plugins/node_features/knl_generic/node_features_knl_generic.c -index f87a685bfc..fb6b879896 100644 ---- a/src/plugins/node_features/knl_generic/node_features_knl_generic.c -+++ b/src/plugins/node_features/knl_generic/node_features_knl_generic.c -@@ -113,6 +113,12 @@ - #define DEFAULT_MCDRAM_SIZE ((uint64_t) 16 * 1024 * 1024 * 1024) - #endif - -+/* Declare these functions as weak in order to support full relro builds. */ -+#if defined(__GNUC__) && defined(__ELF__) -+/* TEST_CASE: slurmctld vs slurmd */ -+int ume_notify(void) __attribute__((weak)); -+#endif -+ - /* These are defined here so when we link with something other than - * the slurmctld we will have these symbols defined. They will get - * overwritten when linking with the slurmctld. -diff --git a/src/plugins/select/cons_res/select_cons_res.h b/src/plugins/select/cons_res/select_cons_res.h -index 0038d1c075..356a17950c 100644 ---- a/src/plugins/select/cons_res/select_cons_res.h -+++ b/src/plugins/select/cons_res/select_cons_res.h -@@ -122,4 +122,15 @@ extern void cr_sort_part_rows(struct part_res_record *p_ptr); - extern uint32_t cr_get_coremap_offset(uint32_t node_index); - extern int cr_cpus_per_core(struct job_details *details, int node_inx); - -+/* Declare these functions as weak in order to support full relro builds. */ -+#if defined(__GNUC__) && defined(__ELF__) -+/* TEST_CASE: slurmd vs srun */ -+int drain_nodes(char *nodes, char *reason, uint32_t reason_uid) -+ __attribute__((weak)); -+uint32_t powercap_get_cluster_current_cap(void) __attribute__((weak)); -+uint16_t slurm_job_preempt_mode(struct job_record *job_ptr) -+ __attribute__((weak)); -+int which_power_layout(void) __attribute__((weak)); -+#endif -+ - #endif /* !_CONS_RES_H */ -diff --git a/src/plugins/select/linear/select_linear.h b/src/plugins/select/linear/select_linear.h -index a9b3bd2bf3..f06f580ccc 100644 ---- a/src/plugins/select/linear/select_linear.h -+++ b/src/plugins/select/linear/select_linear.h -@@ -83,4 +83,11 @@ struct cr_record { - uint16_t tot_job_len; /* length of tot_job_ids array */ - }; - -+/* Declare these functions as weak in order to support full relro builds. */ -+#if defined(__GNUC__) && defined(__ELF__) -+/* TEST_CASE: slurmd vs srun */ -+uint16_t slurm_job_preempt_mode(struct job_record *job_ptr) -+ __attribute__((weak)); -+#endif -+ - #endif /* !_SELECT_LINEAR_H */ -diff --git a/src/plugins/select/serial/select_serial.h b/src/plugins/select/serial/select_serial.h -index e88c49850b..7bea876bd1 100644 ---- a/src/plugins/select/serial/select_serial.h -+++ b/src/plugins/select/serial/select_serial.h -@@ -111,4 +111,13 @@ extern struct node_use_record *select_node_usage; - extern void cr_sort_part_rows(struct part_res_record *p_ptr); - extern uint32_t cr_get_coremap_offset(uint32_t node_index); - -+/* Declare these functions as weak in order to support full relro builds. */ -+#if defined(__GNUC__) && defined(__ELF__) -+/* TEST_CASE: slurmd vs srun */ -+int drain_nodes(char *nodes, char *reason, uint32_t reason_uid) -+ __attribute__((weak)); -+uint16_t slurm_job_preempt_mode(struct job_record *job_ptr) -+ __attribute__((weak)); -+#endif -+ - #endif /* !_SELECT_SERIAL_H */ diff --git a/slurmdbd.conf b/slurmdbd.conf index 32eb78f..edcb4a8 100644 --- a/slurmdbd.conf +++ b/slurmdbd.conf @@ -13,18 +13,25 @@ AuthType=auth/munge #AuthInfo=/var/run/munge/munge.socket.2 # -# slurmDBD info -DbdAddr=localhost -DbdHost=localhost -#DbdPort=7031 -SlurmUser=root -#MessageTimeout=300 +# slurmdbd info DebugLevel=4 #DefaultQOS=normal,standby +DbdAddr=localhost +DbdHost=localhost +#DbdPort=6819 #LogFile= +#MessageTimeout=300 PidFile=/var/run/slurm/slurmdbd.pid #PluginDir= #PrivateData=accounts,users,usage,jobs +PurgeEventAfter=1month +PurgeJobAfter=1month +PurgeResvAfter=1month +PurgeStepAfter=1month +PurgeSuspendAfter=1month +PurgeTXNAfter=1month +PurgeUsageAfter=1month +SlurmUser=root #TrackWCKey=yes # # Database info @@ -32,6 +39,6 @@ StorageType=accounting_storage/mysql #StorageHost=localhost #StoragePort=1234 StoragePass=password -StorageUser=slurm +StorageUser=root #StorageLoc=slurm_acct_db diff --git a/sources b/sources index f90903c..66ed738 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (slurm-17.02.9.tar.bz2) = 9a0b502a16b1fe61fd42ef92cb9cdc0eaa5abb4e9a3b0b6d87337ca0597223c4e132632f22b13a4a5109c03a3f422dd49df6421b637c446973e6d521fb23075c +SHA512 (slurm-17.11.3-2.tar.bz2) = 38a8edd09fe24f08e712a296a1ecb34e207daacdf0e8f57444e35d0329e6b26ecb7f34fecbcc8f46c40df37adf40a1c1d33f2bdb5c48d5882de5b8dfaf5a5b9c