diff --git a/META b/META index 8c3183f34ca8bc5e991bc5b9162eb2a227a69b82..396df5ed866d99e0d56e8d7265d75dc3d9658b2b 100644 --- a/META +++ b/META @@ -3,9 +3,9 @@ Api_revision: 0 Major: 2 Meta: 1 - Micro: 2 + Micro: 4 Minor: 1 Name: slurm Release: 1 Release_tags: dist - Version: 2.1.2 + Version: 2.1.4 diff --git a/Makefile.in b/Makefile.in index ccbac6518d22b9ddcdf95aa06a8a773aa58497f0..b3125c7a60af2e6cdeea28992066c2fb9e6874b2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -250,6 +250,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/NEWS b/NEWS index 65a65b68f4b33fccb28d04d2a00880d3c76b5a81..514bc7e6d132c222a6f16f20b766711b4aeadd21 100644 --- a/NEWS +++ b/NEWS @@ -1,8 +1,68 @@ This file describes changes in recent versions of SLURM. It primarily documents those changes that are of interest to users and admins. +* Changes in SLURM 2.1.4 +======================== + -- Fix for purge script in accounting to use correct options. + -- If SelectType=select/linear and SelectTypeParameters=CR_Memory fix bug that + would fail to release memory reserved for a job if "scontrol reconfigure" + is executed while the job is in completing state. + -- Fix bug in handling event trigger for job time limit while job is still + in pending state. + -- Fixed display of Ave/MaxCPU in sacct for jobs. Steps were printed + correctly. + -- When node current features differs from slurm.conf, log the node names + using a hostlist expression rather than listing individual node names. + -- Improve ability of srun to abort job step for some task launch failures. + -- Fix mvapich plugin logic to release the created job allocation on + initialization failure (previously the failures would cancel job step, + but retain job allocation). + -- Fix bug in srun for task count so large that it overflows int data type. + -- Fix important bug in select/cons_res handling of ntasks-per-core parameter + that was uncovered by a bug fixed in v2.1.3. Bug produced fatal error for + slurmctld: "cons_res: cpus computation error". + -- Fix bug in select/cons_res handling of partitions configured with + Shared=YES. Prior logic failed to support running multiple jobs per node. + +* Changes in SLURM 2.1.3-2 +========================== + -- Modified spec file to obsolete pam_slurm when installing + the slurm-pam_slurm rpm. + +* Changes in SLURM 2.1.3-1 +========================== + -- BLUEGENE - Fix issues on static/overlap systems where if a midplane + was drained you would not be able to create new blocks on it. + -- In sched/wiki2 (for Moab): Add excluded host list to job information + using new keyword "EXCLUDE_HOSTLIST". + -- Correct slurmd reporting of incorrect socket/core/thread counts. + -- For sched/wiki2 (Moab): Do not extend a job's end time for suspend/resume + or startup delay due to node boot time. A job's end time will always be + its start time plus time limit. + -- Added build-time option (to configure program) of --with-pam_dir to + specify the directory into which PAM modules get installed, although it + should pick the proper directory by default. "make install" and "rpmbuild" + should now put the pam_slurm.so file in the proper directory. + -- Modify PAM module to link against SLURM API shared library and use exported + slurm_hostlist functions. + -- Do not block new jobs with --immediate option while another job is in the + process of being requeued (which can take a long time for some node failure + modes). + -- For topology/tree, log invalid hostnames in a single hostlist expression + rather than one per line. + -- A job step's default time limit will be UNLIMITED rather than partition's + default time limit. The step will automatically be cancelled as part of the + job termination logic when the job's time limit is reached. + -- sacct - fixed bug when checking jobs against a reservation + -- In select/cons_res, fix support for job allocation with --ntasks_per_node + option. Previously could allocate too few CPUs on some nodes. + -- Adjustment made to init message to the slurmdbd to allow backwards + compatibility with future 2.2 release. YOU NEED TO UPGRADE SLURMDBD + BEFORE ANYTHING ELSE. + -- Fix accounting when comment of down/drained node has double quotes in it. + * Changes in SLURM 2.1.2 -============================= +======================== -- Added nodelist to sview for jobs on non-bluegene systems -- Correction in value of batch job environment variable SLURM_TASKS_PER_NODE under some conditions. @@ -25,13 +85,14 @@ documents those changes that are of interest to users and admins. of jobs to share resources. -- BLUEGENE - Fixed issue where tasks on steps weren't being displayed correctly with scontrol and sview. - -- BLUEGENE - fixed wiki2 plugin to report correct task count for pending jobs. + -- BLUEGENE - fixed wiki2 plugin to report correct task count for pending + jobs. -- BLUEGENE - Added /etc/ld.so.conf.d/slurm.conf to point to the directory holding libsched_if64.so when building rpms. -- Adjust get_wckeys call in slurmdbd to allow operators to list wckeys. * Changes in SLURM 2.1.1 -============================= +======================== -- Fix for case sensitive databases when a slurmctld has a mixed case clustername to lower case the string to easy compares. -- Fix squeue if job is completing and failed to print remaining @@ -59,7 +120,8 @@ documents those changes that are of interest to users and admins. -- Fix issue where a 2.0 sacct could not talk correctly to a 2.1 slurmdbd. -- BLUEGENE - Fix issue where no partitions have any nodes assigned them to alert user no blocks can be created. - -- BLUEGENE - Fix smap to put BGP images when using -Dc on a Blue Gene/P system + -- BLUEGENE - Fix smap to put BGP images when using -Dc on a Blue Gene/P + system. -- Set SLURM_SUBMIT_DIR environment variable for srun and salloc commands to match behavior of sbatch command. -- Report WorkDir from "scontrol show job" command for jobs launched using @@ -71,7 +133,7 @@ documents those changes that are of interest to users and admins. viewing the jobs tab. * Changes in SLURM 2.1.0 -============================= +======================== -- Improve sview layout of blocks in use. -- A user can now change the dimensions of the grid in sview. -- BLUEGENE - improved startup speed further for large numbers of defined @@ -4828,4 +4890,4 @@ documents those changes that are of interest to users and admins. -- Change directory to /tmp in slurmd if daemonizing. -- Logfiles are reopened on reconfigure. -$Id: NEWS 19384 2010-02-02 22:11:39Z da $ +$Id: NEWS 19625 2010-02-27 00:23:00Z jette $ diff --git a/auxdir/Makefile.in b/auxdir/Makefile.in index 1dad4f1f33602ba261c1c92470bdb3b6dd7d398c..2a4a9ce0b1c595437c7d0976016302cdf6e519b2 100644 --- a/auxdir/Makefile.in +++ b/auxdir/Makefile.in @@ -166,6 +166,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/auxdir/x_ac_pam.m4 b/auxdir/x_ac_pam.m4 index 2d370dd236a0ed4cf7c9db55d0c6d9b7124eff71..0243e03e330e2ad07a69405382fbe06701862275 100644 --- a/auxdir/x_ac_pam.m4 +++ b/auxdir/x_ac_pam.m4 @@ -48,9 +48,29 @@ AC_DEFUN([X_AC_PAM], [ else AC_MSG_RESULT([no]) fi - AM_CONDITIONAL(HAVE_PAM, test "x$x_ac_pam" = "xyes" -a "x$ac_have_pam" = "xyes" -a "x$ac_have_pam_misc" = "xyes") + + AC_ARG_WITH(pam_dir, + AS_HELP_STRING(--with-pam_dir=PATH,Specify path to PAM module installation), + [ + if test -d $withval ; then + PAM_DIR="$withval" + else + AC_MSG_ERROR([bad value "$withval" for --with-pam_dir]) + fi + ], + [ + if test -d /lib64/security ; then + PAM_DIR="/lib64/security" + else + PAM_DIR="/lib/security" + fi + ] + ) + AC_SUBST(PAM_DIR) + AC_DEFINE_UNQUOTED(PAM_DIR, "$pam_dir", [Define PAM module installation directory.]) + ]) diff --git a/config.h.in b/config.h.in index 4326cdbcf96eeb9637a04b2b295ed25fa2f723a8..2db0d433531270ad57b14c1f71e0169be38b07cd 100644 --- a/config.h.in +++ b/config.h.in @@ -358,6 +358,9 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION +/* Define PAM module installation directory. */ +#undef PAM_DIR + /* Define the project's name. */ #undef PROJECT diff --git a/configure b/configure index dc40b02ccb3bb330c9ec6f233e6eb4f13fea0c26..b51eac17914d40b4a9d49086a74e3952d7825d22 100755 --- a/configure +++ b/configure @@ -809,6 +809,7 @@ PTHREAD_CC HAVE_UNSETENV_FALSE HAVE_UNSETENV_TRUE LIBOBJS +PAM_DIR HAVE_PAM_FALSE HAVE_PAM_TRUE PAM_LIBS @@ -985,6 +986,7 @@ with_gnu_ld enable_libtool_lock with_cpusetdir enable_pam +with_pam_dir enable_iso8601 enable_load_env_no_login enable_cray_xt @@ -1682,6 +1684,7 @@ Optional Packages: --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-cpusetdir=PATH specify path to cpuset directory default is /dev/cpuset + --with-pam_dir=PATH Specify path to PAM module installation --with-apbasil=PATH Specify path to apbasil command --with-xcpu=PATH specify path to XCPU directory --with-mysql_config=PATH @@ -6968,13 +6971,13 @@ if test "${lt_cv_nm_interface+set}" = set; then : else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:6971: $ac_compile\"" >&5) + (eval echo "\"\$as_me:6974: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:6974: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:6977: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:6977: output\"" >&5) + (eval echo "\"\$as_me:6980: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -8179,7 +8182,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 8182 "configure"' > conftest.$ac_ext + echo '#line 8185 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -9968,11 +9971,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9971: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9974: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:9975: \$? = $ac_status" >&5 + echo "$as_me:9978: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -10307,11 +10310,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10310: $lt_compile\"" >&5) + (eval echo "\"\$as_me:10313: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:10314: \$? = $ac_status" >&5 + echo "$as_me:10317: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -10412,11 +10415,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10415: $lt_compile\"" >&5) + (eval echo "\"\$as_me:10418: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:10419: \$? = $ac_status" >&5 + echo "$as_me:10422: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -10467,11 +10470,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:10470: $lt_compile\"" >&5) + (eval echo "\"\$as_me:10473: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:10474: \$? = $ac_status" >&5 + echo "$as_me:10477: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -12850,7 +12853,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12853 "configure" +#line 12856 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12946,7 +12949,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12949 "configure" +#line 12952 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -14902,11 +14905,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14905: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14908: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:14909: \$? = $ac_status" >&5 + echo "$as_me:14912: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -15001,11 +15004,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15004: $lt_compile\"" >&5) + (eval echo "\"\$as_me:15007: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:15008: \$? = $ac_status" >&5 + echo "$as_me:15011: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -15053,11 +15056,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15056: $lt_compile\"" >&5) + (eval echo "\"\$as_me:15059: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:15060: \$? = $ac_status" >&5 + echo "$as_me:15063: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -17014,7 +17017,6 @@ $as_echo "$as_me: WARNING: Unable to locate PAM libraries" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "x$x_ac_pam" = "xyes" -a "x$ac_have_pam" = "xyes" -a "x$ac_have_pam_misc" = "xyes"; then HAVE_PAM_TRUE= HAVE_PAM_FALSE='#' @@ -17026,6 +17028,35 @@ fi +# Check whether --with-pam_dir was given. +if test "${with_pam_dir+set}" = set; then : + withval=$with_pam_dir; + if test -d $withval ; then + PAM_DIR="$withval" + else + as_fn_error "bad value \"$withval\" for --with-pam_dir" "$LINENO" 5 + fi + +else + + if test -d /lib64/security ; then + PAM_DIR="/lib64/security" + else + PAM_DIR="/lib/security" + fi + + +fi + + + +cat >>confdefs.h <<_ACEOF +#define PAM_DIR "$pam_dir" +_ACEOF + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable ISO 8601 time format support" >&5 $as_echo_n "checking whether to enable ISO 8601 time format support... " >&6; } diff --git a/contribs/Makefile.in b/contribs/Makefile.in index f2deb0c2ede2f0d5d9be32e7c108fb75958e3f8b..a41de243376dc3d6285f632ca0199d76e04fb1b6 100644 --- a/contribs/Makefile.in +++ b/contribs/Makefile.in @@ -205,6 +205,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/contribs/pam/Makefile.am b/contribs/pam/Makefile.am index 13353d2519f4344c44649b54e795319478daf9f7..d74b092e8db112a4c4625672b0016a6d4cfd4a2a 100644 --- a/contribs/pam/Makefile.am +++ b/contribs/pam/Makefile.am @@ -8,7 +8,7 @@ CPPFLAGS = -fPIC INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common PLUGIN_FLAGS = -module --export-dynamic -avoid-version -pkglibdir = $(libdir)/security +pkglibdir = $(PAM_DIR) if HAVE_PAM pam_lib = pam_slurm.la @@ -24,13 +24,18 @@ current = $(SLURM_API_CURRENT) age = $(SLURM_API_AGE) rev = $(SLURM_API_REVISION) -pam_slurm_la_SOURCES = \ - pam_slurm.c \ - $(top_builddir)/src/common/hostlist.c \ - $(top_builddir)/src/common/hostlist.h +pam_slurm_la_SOURCES = pam_slurm.c + +pam_slurm_la_LIBADD = $(top_builddir)/src/api/libslurm.la pam_slurm_la_LDFLAGS = $(SO_LDFLAGS) $(PLUGIN_FLAGS) $(LIB_LDFLAGS) +force: +$(pam_slurm_la_LIBADD) : force + @cd `dirname $@` && $(MAKE) +# Don't specify basename or version.map files in src/api will not be built +# @cd `dirname $@` && $(MAKE) `basename $@` + else EXTRA_pam_slurm_la_SOURCES = pam_slurm.c endif diff --git a/contribs/pam/Makefile.in b/contribs/pam/Makefile.in index 20cb35cdfb7afa6e731091827a62be200916d021..238c1b4f1f031559dfcca509d81fc48ca40b4ec5 100644 --- a/contribs/pam/Makefile.in +++ b/contribs/pam/Makefile.in @@ -104,11 +104,10 @@ am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(pkglibdir)" LTLIBRARIES = $(pkglib_LTLIBRARIES) -pam_slurm_la_LIBADD = -am__pam_slurm_la_SOURCES_DIST = pam_slurm.c \ - $(top_builddir)/src/common/hostlist.c \ - $(top_builddir)/src/common/hostlist.h -@HAVE_PAM_TRUE@am_pam_slurm_la_OBJECTS = pam_slurm.lo hostlist.lo +@HAVE_PAM_TRUE@pam_slurm_la_DEPENDENCIES = \ +@HAVE_PAM_TRUE@ $(top_builddir)/src/api/libslurm.la +am__pam_slurm_la_SOURCES_DIST = pam_slurm.c +@HAVE_PAM_TRUE@am_pam_slurm_la_OBJECTS = pam_slurm.lo am__EXTRA_pam_slurm_la_SOURCES_DIST = pam_slurm.c pam_slurm_la_OBJECTS = $(am_pam_slurm_la_OBJECTS) pam_slurm_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ @@ -134,7 +133,7 @@ DIST_SOURCES = $(am__pam_slurm_la_SOURCES_DIST) \ ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -pkglibdir = $(libdir)/security +pkglibdir = $(PAM_DIR) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ @@ -220,6 +219,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ @@ -328,12 +328,11 @@ pkglib_LTLIBRARIES = $(pam_lib) @HAVE_PAM_TRUE@current = $(SLURM_API_CURRENT) @HAVE_PAM_TRUE@age = $(SLURM_API_AGE) @HAVE_PAM_TRUE@rev = $(SLURM_API_REVISION) -@HAVE_PAM_TRUE@pam_slurm_la_SOURCES = \ -@HAVE_PAM_TRUE@ pam_slurm.c \ -@HAVE_PAM_TRUE@ $(top_builddir)/src/common/hostlist.c \ -@HAVE_PAM_TRUE@ $(top_builddir)/src/common/hostlist.h - +@HAVE_PAM_TRUE@pam_slurm_la_SOURCES = pam_slurm.c +@HAVE_PAM_TRUE@pam_slurm_la_LIBADD = $(top_builddir)/src/api/libslurm.la @HAVE_PAM_TRUE@pam_slurm_la_LDFLAGS = $(SO_LDFLAGS) $(PLUGIN_FLAGS) $(LIB_LDFLAGS) +# Don't specify basename or version.map files in src/api will not be built +# @cd `dirname $@` && $(MAKE) `basename $@` @HAVE_PAM_FALSE@EXTRA_pam_slurm_la_SOURCES = pam_slurm.c all: all-am @@ -409,7 +408,6 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hostlist.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam_slurm.Plo@am__quote@ .c.o: @@ -433,13 +431,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -hostlist.lo: $(top_builddir)/src/common/hostlist.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hostlist.lo -MD -MP -MF $(DEPDIR)/hostlist.Tpo -c -o hostlist.lo `test -f '$(top_builddir)/src/common/hostlist.c' || echo '$(srcdir)/'`$(top_builddir)/src/common/hostlist.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/hostlist.Tpo $(DEPDIR)/hostlist.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_builddir)/src/common/hostlist.c' object='hostlist.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hostlist.lo `test -f '$(top_builddir)/src/common/hostlist.c' || echo '$(srcdir)/'`$(top_builddir)/src/common/hostlist.c - mostlyclean-libtool: -rm -f *.lo @@ -648,6 +639,10 @@ uninstall-am: uninstall-pkglibLTLIBRARIES tags uninstall uninstall-am uninstall-pkglibLTLIBRARIES +@HAVE_PAM_TRUE@force: +@HAVE_PAM_TRUE@$(pam_slurm_la_LIBADD) : force +@HAVE_PAM_TRUE@ @cd `dirname $@` && $(MAKE) + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/contribs/pam/pam_slurm.c b/contribs/pam/pam_slurm.c index 6b5ddd6fe1b5f810d548f14bc5c575d9129e47a0..6a821ad00a05c8868c675278f6c7f9533585048f 100644 --- a/contribs/pam/pam_slurm.c +++ b/contribs/pam/pam_slurm.c @@ -1,5 +1,5 @@ /*****************************************************************************\ - * $Id: pam_slurm.c 18423 2009-08-18 20:22:02Z jette $ + * $Id: pam_slurm.c 19468 2010-02-10 18:08:42Z jette $ ***************************************************************************** * Copyright (C) 2002-2007 The Regents of the University of California. * Copyright (C) 2008-2009 Lawrence Livermore National Security. @@ -46,7 +46,6 @@ #include <dlfcn.h> #include "slurm/slurm.h" -#include "hostlist.h" /* Define the externally visible functions in this file. */ @@ -226,10 +225,10 @@ _hostrange_member(char *hostname, char *str) if (!*hostname || !*str) return 0; - if ((hl = hostlist_create(str)) == NULL) + if ((hl = slurm_hostlist_create(str)) == NULL) return 0; - found_host = hostlist_find(hl, hostname); - hostlist_destroy(hl); + found_host = slurm_hostlist_find(hl, hostname); + slurm_hostlist_destroy(hl); if (found_host == -1) return 0; @@ -237,53 +236,6 @@ _hostrange_member(char *hostname, char *str) return 1; } -/* - * Wrapper for SLURM API function slurm_load_jobs () - */ -int _slurm_load_jobs (job_info_msg_t **msgp) -{ - static int (*load_jobs) (time_t, job_info_msg_t **, uint16_t); - - if (!(load_jobs = dlsym (slurm_h, "slurm_load_jobs"))) { - _log_msg (LOG_ERR, "Unable to resolve slurm_load_jobs\n"); - return -1; - } - - return load_jobs ((time_t) NULL, msgp, (uint16_t) SHOW_ALL); -} - -/* - * Wrapper for SLURM API function slurm_strerror () - */ -char * _slurm_strerror (int errnum) -{ - static char * (*f) (int); - - if (!(f = dlsym (slurm_h, "slurm_strerror"))) { - _log_msg (LOG_ERR, "Unable to resolve slurm_strerror\n"); - return "unknown error"; - } - - return f (errnum); -} - -/* - * Wrapper for slurm_free_job_info_msg () - */ -void _free_msg (job_info_msg_t *msg) -{ - static void (*free_msg) (job_info_msg_t *); - - if (!(free_msg = dlsym (slurm_h, "slurm_free_job_info_msg"))) { - _log_msg (LOG_ERR, "Unable to resolve slurm_free_job...\n"); - return; - } - - free_msg (msg); - - return; -} - /* * Query the SLURM database to find out if 'uid' has been allocated * this node. If so, return 1 indicating that 'uid' is authorized to @@ -305,9 +257,9 @@ _slurm_match_allocation(uid_t uid) DBG ("does uid %ld have \"%s\" allocated", uid, hostname); - if (_slurm_load_jobs(&msg) < 0) { + if (slurm_load_jobs((time_t) 0, &msg, SHOW_ALL) < 0) { _log_msg(LOG_ERR, "slurm_load_jobs: %s", - _slurm_strerror(errno)); + slurm_strerror(errno)); return 0; } @@ -329,7 +281,7 @@ _slurm_match_allocation(uid_t uid) } } - _free_msg (msg); + slurm_free_job_info_msg (msg); return authorized; } @@ -395,7 +347,7 @@ extern void libpam_slurm_init (void) { if (slurm_h) return; - + if (!(slurm_h = dlopen("libslurm.so", RTLD_NOW|RTLD_GLOBAL))) _log_msg (LOG_ERR, "Unable to dlopen libslurm: %s\n", dlerror ()); diff --git a/contribs/perlapi/Makefile.in b/contribs/perlapi/Makefile.in index 79f371efdd834ce6d927e9858385aa19a116ff16..c5d0197c0d55c97033cb07655c58867448b58b44 100644 --- a/contribs/perlapi/Makefile.in +++ b/contribs/perlapi/Makefile.in @@ -165,6 +165,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/contribs/phpext/Makefile.in b/contribs/phpext/Makefile.in index 2e6f4145d9f777db575e74945214108ca38d1b79..7eb7e0e12132b03371ce8d24e0f683d333442db5 100644 --- a/contribs/phpext/Makefile.in +++ b/contribs/phpext/Makefile.in @@ -165,6 +165,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/contribs/slurmdb-direct/Makefile.in b/contribs/slurmdb-direct/Makefile.in index d621cf68ab096bd71580ac0306a205830a202c50..babb27ee115be47b0264f4b771d297e2f2a067d2 100644 --- a/contribs/slurmdb-direct/Makefile.in +++ b/contribs/slurmdb-direct/Makefile.in @@ -192,6 +192,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/contribs/torque/Makefile.in b/contribs/torque/Makefile.in index 903c7a9c9fb326dfc9399a055d319903febc7762..2b2d48a91e08ce6805cb1ccc1339774e91f59c40 100644 --- a/contribs/torque/Makefile.in +++ b/contribs/torque/Makefile.in @@ -192,6 +192,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/doc/Makefile.in b/doc/Makefile.in index 2ebd81f388fc87ea5e275f683264a09f71ad16dc..7c5f28641342eabd4ae641da04df9dcb3041d6c3 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -205,6 +205,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/doc/html/Makefile.in b/doc/html/Makefile.in index dd682cf6e5f1daa1b9caa953c216b2f75f615295..c48740f84497f84a649a993781987e9fe949a62b 100644 --- a/doc/html/Makefile.in +++ b/doc/html/Makefile.in @@ -190,6 +190,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/doc/html/configurator.html.in b/doc/html/configurator.html.in index ab1074c63dfb33e53bab34333e720385e0ea1882..666441144ede2577317bd75fe47d5408c48a8fe4 100644 --- a/doc/html/configurator.html.in +++ b/doc/html/configurator.html.in @@ -531,7 +531,7 @@ to Maui (configuration parameter <B>SchedulerPort</B> must specified)<BR> to Moab (configuration parameter <B>SchedulerPort</B> must specified)<BR> <P> <input type="text" name="scheduler_port" value="7321"> <B>SchedulerPort</B>: scheduler -communications port (used by Wiki only) +communications port (used by Wiki and Wiki2 only) <P> Define what node configuration (sockets, cores, memory, etc.) should be used. Using values defined in the configuration file will provide faster scheduling.<BR> @@ -848,6 +848,6 @@ before terminating all remaining tasks. A value of zero indicates unlimited wait </FORM> <HR> <P class="footer">LLNL-WEB-402631<BR> -Last modified 13 August 2009</P> +Last modified 3 February 2010</P> </BODY> diff --git a/doc/html/download.shtml b/doc/html/download.shtml index 62e86616c131d2448f62917f8a6680a8e0f974db..6e8dc5e2a4cfea5e2c1a4e894894b45dd2b37859 100644 --- a/doc/html/download.shtml +++ b/doc/html/download.shtml @@ -20,8 +20,9 @@ a message.</li> <li><b>Munge</b> (recommended)<br> In order to compile the "auth/munge" authentication plugin for SLURM, you will need to build and install Munge, available from -<a href="http://home.gna.org/munge/">http://home.gna.org/munge/</a> or -<a href="http://packages.debian.org/src:munge">Debian</a> or +<a href="http://home.gna.org/munge/">http://home.gna.org/munge/</a> and +<a href="http://packages.debian.org/src:munge">Debian</a> and +<a href="http://fedoraproject.org/">Fedora</a> and <a href="http://packages.ubuntu.com/src:munge">Ubuntu</a>. </li> </ul><br> @@ -184,6 +185,6 @@ Portable Linux Processor Affinity (PLPA)</a></li> </ul> -<p style="text-align:center;">Last modified 6 January 2010</p> +<p style="text-align:center;">Last modified 19 February 2010</p> <!--#include virtual="footer.txt"--> diff --git a/doc/html/slurm.shtml b/doc/html/slurm.shtml index 0142122329d48b3980a19394710ab98278f900ca..3a285e6bbb00f559346a57bbf549be01eeafd0ff 100644 --- a/doc/html/slurm.shtml +++ b/doc/html/slurm.shtml @@ -71,8 +71,7 @@ and a three-dimensional torus interconnect </li> <a href="http://www.hp.com">Hewlett-Packard</a> and <a href="http://www.bull.com">Bull</a>. It is also distributed and supported by -<a href="http://www.clusterresources.com">Cluster Resources</a>, -<a href="http://www.sicortex.com">SiCortex</a>, +<a href="http://www.adaptivecomputing.com">Adaptive Computing</a>, <a href="http://www.infiscale.com">Infiscale</a>, <a href="http://www.ibm.com">IBM</a> and <a href="http://www.sun.com">Sun Microsystems</a>.</p> diff --git a/doc/html/team.shtml b/doc/html/team.shtml index 8a8780219f237fb78167873cf4ebf1f6b154082b..0a6d9a507e644471a28c98a9bd5506efaf9d8222 100644 --- a/doc/html/team.shtml +++ b/doc/html/team.shtml @@ -40,7 +40,7 @@ Linux NetworX and many other contributors. <li>Matthieu Hautreux (CEA, France)</li> <li>David Höppner</li> <li>Nathan Huff (North Dakota State University)</li> -<li>David Jackson (Cluster Resources)</li> +<li>David Jackson (Adaptive Computing)</li> <li>Klaus Joas (University Karlsruhe, Germany)</li> <li>Greg Johnson (LANL)</li> <li>Jason King (LLNL)</li> diff --git a/doc/man/Makefile.in b/doc/man/Makefile.in index e410235f97f51edf23b1640085ce42396bf874f1..8c2ca4d312e9f4a6e275dc7bdb312ecf1daa0c00 100644 --- a/doc/man/Makefile.in +++ b/doc/man/Makefile.in @@ -194,6 +194,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/doc/man/man1/scontrol.1 b/doc/man/man1/scontrol.1 index 2cf1b8942082275bb4a79af1d72536581647e90c..89504f06aeb4b38191a8d1f8241e84238b895f1f 100644 --- a/doc/man/man1/scontrol.1 +++ b/doc/man/man1/scontrol.1 @@ -325,7 +325,7 @@ Repeat the last command executed. Account name to be changed for this job's resource use. Value may be cleared with blank data value, "Account=". .TP -\fIConnection\fP=<type> +\fIConn\-Type\fP=<type> Reset the node connection type. Possible values on Blue Gene are "MESH", "TORUS" and "NAV" (mesh else torus). @@ -365,6 +365,9 @@ This job can begin execution after any previously launched jobs sharing the same job name and user have terminated. .RE .TP +\fIEligibleTime\fP=<time_spec> +See \fIStartTime\fP. +.TP \fIExcNodeList\fP=<nodes> Set the job's list of excluded node. Multiple node names may be specified using simple node range expressions (e.g. "lx[10\-20]"). @@ -388,13 +391,16 @@ On Blue Gene the value should be three digits separated by "x" or ",". The digits represent the allocation size in X, Y and Z dimensions (e.g. "2x3x4"). .TP -\fIRotate\fP=<yes|no> -Permit the job's geometry to be rotated. -Possible values are "YES" and "NO". -.TP \fIJobId\fP=<id> Identify the job to be updated. This specification is required. .TP +\fILicenses\fP=<name> +Specification of licenses (or other resources available on all nodes +of the cluster) as described in salloc/sbatch/srun man pages. +.TP +\fIMinCPUsNode\fP=<count> +Set the job's minimum number of CPUs per node to the specified value. +.TP \fIMinMemoryCPU\fP=<megabytes> Set the job's minimum real memory required per allocated CPU to the specified value. @@ -404,9 +410,6 @@ Either \fIMinMemoryCPU\fP or \fIMinMemoryNode\fP may be set, but not both. Set the job's minimum real memory required per node to the specified value. Either \fIMinMemoryCPU\fP or \fIMinMemoryNode\fP may be set, but not both. .TP -\fIMinCPUsNode\fP=<count> -Set the job's minimum number of CPUs per node to the specified value. -.TP \fIMinTmpDiskNode\fP=<megabytes> Set the job's minimum temporary disk space required per node to the specified value. .TP @@ -451,6 +454,17 @@ Set the job's count of minimum sockets per node to the specified value. \fIReqThreads\fP=<count> Set the job's count of minimum threads per core to the specified value. .TP +\fIRequeue\fP=<0|1> +Stipulates whether a job should be requeued after a node failure: 0 +for no, 1 for yes. +.TP +\fIReservationName\fP=<name> +Set the job's reservation to the specified value. +.TP +\fIRotate\fP=<yes|no> +Permit the job's geometry to be rotated. +Possible values are "YES" and "NO". +.TP \fIShared\fP=<yes|no> Set the job's ability to share nodes with other jobs. Possible values are "YES" and "NO". @@ -494,6 +508,9 @@ hours:minutes:seconds, days\-hours, days\-hours:minutes or days\-hours:minutes:seconds. Time resolution is one minute and second values are rounded up to the next minute. +.TP +\fIWCKey\fP=<key> +Set the job's workload characterization key to the specified value. .TP NOTE: The "show" command, when used with the "job" or "job <jobid>" diff --git a/doc/man/man5/slurm.conf.5 b/doc/man/man5/slurm.conf.5 index 9cde65cddde8d310cd8ed664d9696b83c9298f15..e7a3e9ee3bafd7b8fa2344c866eec22cfcae9713 100644 --- a/doc/man/man5/slurm.conf.5 +++ b/doc/man/man5/slurm.conf.5 @@ -42,7 +42,7 @@ in the \fIslurm.conf\fR file, such as log files and job accounting files, may need to be created/owned by the "SlurmUser" uid to be successfully accessed. Use the "chown" and "chmod" commands to set the ownership and permissions appropriately. -See the section \fBFILE AND DIRECTORY PERMISSIONS\fR for information +See the section \fBFILE AND DIRECTORY PERMISSIONS\fR for information about the various files and directories used by SLURM. .SH "PARAMETERS" @@ -521,13 +521,18 @@ seconds between sampling job state. The default value is 30 seconds. A value of zero disables real the periodic job sampling and provides accounting information only on job termination (reducing SLURM interference with the job). +Smaller (non\-zero) values have a greater impact upon job performance, but +a value of 30 seconds is not likely to be noticeable for applications having +less than 10,000 tasks. +Users can override this value on a per job basis using the \fB\-\-acctg\-freq\fR +option when submitting the job. .TP \fBJobCheckpointDir\fR -Specifies the default directory for storing or reading job checkpoint -information. The data stored here is only a few thousand bytes per job +Specifies the default directory for storing or reading job checkpoint +information. The data stored here is only a few thousand bytes per job and includes information needed to resubmit the job request, not job's -memory image. The directory must be readable and writable by +memory image. The directory must be readable and writable by \fBSlurmUser\fR, but not writable by regular users. The job memory images may be in a different location as specified by \fB\-\-checkpoint\-dir\fR option at job submit time or scontrol's \fBImageDir\fR option. @@ -2520,17 +2525,17 @@ PartitionName=long Nodes=dev[9\-17] MaxTime=120 AllowGroups=admin There are three classes of files: Files used by \fBslurmctld\fR must be accessible by user \fBSlurmUser\fR and accessible by the primary and backup control machines. -Files used by \fBslurmd\fR must be accessible by user root and +Files used by \fBslurmd\fR must be accessible by user root and accessible from every compute node. -A few files need to be accessible by normal users on all login and +A few files need to be accessible by normal users on all login and compute nodes. -While many files and directories are listed below, most of them will +While many files and directories are listed below, most of them will not be used with most configurations. .TP \fBAccountingStorageLoc\fR If this specifies a file, it must be writable by user \fBSlurmUser\fR. The file must be accessible by the primary and backup control machines. -It is recommended that the file be readable by all users from login and +It is recommended that the file be readable by all users from login and compute nodes. .TP \fBEpilog\fR @@ -2596,7 +2601,7 @@ Must be writable by user \fBSlurmUser\fR. The file must be accessible by the primary and backup control machines. .TP \fBSlurmctldPidFile\fR -Must be writable by user root. +Must be writable by user root. Preferably writable and removable by \fBSlurmUser\fR. The file must be accessible by the primary and backup control machines. .TP diff --git a/slurm.spec b/slurm.spec index a42bd0a409516baf6a787d2af81ad297295028df..03059612617ed874f803a268a0fbb9d596c9787e 100644 --- a/slurm.spec +++ b/slurm.spec @@ -1,4 +1,4 @@ -# $Id: slurm.spec 19380 2010-02-02 18:31:55Z da $ +# $Id: slurm.spec 19555 2010-02-19 22:35:07Z da $ # # Note that this package is not relocatable @@ -83,14 +83,14 @@ %endif Name: slurm -Version: 2.1.2 +Version: 2.1.4 Release: 1%{?dist} Summary: Simple Linux Utility for Resource Management License: GPL Group: System Environment/Base -Source: slurm-2.1.2.tar.bz2 +Source: slurm-2.1.4.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release} URL: https://computing.llnl.gov/linux/slurm/ @@ -292,6 +292,7 @@ Summary: SLURM interfaces to IBM AIX and Federation switch. Group: System Environment/Base Requires: slurm BuildRequires: proctrack >= 3 +Obsoletes: slurm-aix-federation %description aix SLURM plugins for IBM AIX and Federation switch. %endif @@ -331,6 +332,7 @@ Summary: PAM module for restricting access to compute nodes via SLURM. Group: System Environment/Base Requires: slurm slurm-devel BuildRequires: pam-devel +Obsoletes: pam_slurm %description pam_slurm This module restricts access to compute nodes in a cluster where the Simple Linux Utility for Resource Managment (SLURM) is in use. Access is granted @@ -350,7 +352,7 @@ Gives the ability for SLURM to use Berkeley Lab Checkpoint/Restart ############################################################################# %prep -%setup -n slurm-2.1.2 +%setup -n slurm-2.1.4 %build %configure --program-prefix=%{?_program_prefix:%{_program_prefix}} \ @@ -358,6 +360,7 @@ Gives the ability for SLURM to use Berkeley Lab Checkpoint/Restart %{?slurm_with_debug:--enable-debug} \ %{?slurm_with_sun_const:--enable-sun-const} \ %{?with_db2_dir} \ + %{?with_pam_dir} \ %{?with_proctrack} \ %{?with_cpusetdir} \ %{?with_apbasildir} \ @@ -394,6 +397,12 @@ install -D -m755 contribs/sjstat ${RPM_BUILD_ROOT}%{_bindir}/sjstat # Delete unpackaged files: rm -f $RPM_BUILD_ROOT/%{_libdir}/slurm/*.{a,la} rm -f $RPM_BUILD_ROOT/%{_libdir}/security/*.{a,la} +%if %{?with_pam_dir}0 +rm -f $RPM_BUILD_ROOT/%{with_pam_dir}/pam_slurm.{a,la} +%endif +rm -f $RPM_BUILD_ROOT/lib/security/pam_slurm.{a,la} +rm -f $RPM_BUILD_ROOT/lib32/security/pam_slurm.{a,la} +rm -f $RPM_BUILD_ROOT/lib64/security/pam_slurm.{a,la} %if ! %{slurm_with auth_none} rm -f $RPM_BUILD_ROOT/%{_libdir}/slurm/auth_none.so %endif @@ -442,6 +451,7 @@ if [ -d /etc/init.d ]; then fi LIST=./plugins.files +touch $LIST test -f $RPM_BUILD_ROOT/%{_libdir}/slurm/accounting_storage_mysql.so && echo %{_libdir}/slurm/accounting_storage_mysql.so >> $LIST test -f $RPM_BUILD_ROOT/%{_libdir}/slurm/accounting_storage_pgsql.so && @@ -455,6 +465,19 @@ test -f $RPM_BUILD_ROOT/%{_libdir}/slurm/jobcomp_pgsql.so && test -f $RPM_BUILD_ROOT/%{_libdir}/slurm/task_affinity.so && echo %{_libdir}/slurm/task_affinity.so >> $LIST +LIST=./pam.files +touch $LIST +%if %{?with_pam_dir}0 + test -f $RPM_BUILD_ROOT/%{with_pam_dir}/pam_slurm.so && + echo %{with_pam_dir}/pam_slurm.so >>$LIST +%else + test -f $RPM_BUILD_ROOT/lib/security/pam_slurm.so && + echo /lib/security/pam_slurm.so >>$LIST + test -f $RPM_BUILD_ROOT/lib32/security/pam_slurm.so && + echo /lib32/security/pam_slurm.so >>$LIST + test -f $RPM_BUILD_ROOT/lib64/security/pam_slurm.so && + echo /lib64/security/pam_slurm.so >>$LIST +%endif ############################################################################# %clean @@ -661,9 +684,8 @@ rm -rf $RPM_BUILD_ROOT ############################################################################# %if %{slurm_with pam} -%files pam_slurm +%files -f pam.files pam_slurm %defattr(-,root,root) -%{_libdir}/security/pam_slurm.so %endif ############################################################################# diff --git a/src/Makefile.in b/src/Makefile.in index d7afaa0749f3e5d8dd74d04d86c855dd20106eee..998f9d130320340e374750958e33b41cb034b619 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -208,6 +208,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/api/Makefile.am b/src/api/Makefile.am index 44500c7ac6f9473f2aea2f0c4eaf0fe7d80092fa..4eb45ec5b60778fb81233ededb763a31e61db728 100644 --- a/src/api/Makefile.am +++ b/src/api/Makefile.am @@ -152,7 +152,7 @@ libslurm.o: $(libslurmhelper_la_OBJECTS) $(libslurm_o_LDADD) force: -$(libslurm_o_LDADD) $(convenience_libs) : force +$(libslurm_o_LDADD) $(convenience_libs) $(slurmapi_add) : force @cd `dirname $@` && $(MAKE) `basename $@` diff --git a/src/api/Makefile.in b/src/api/Makefile.in index 6691ae1a40a16d008f19a1aecb9cdf9520f46c65..be4106b8eaef910435de2e4aee39a109483707d4 100644 --- a/src/api/Makefile.in +++ b/src/api/Makefile.in @@ -241,6 +241,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ @@ -853,7 +854,7 @@ libslurm.o: $(libslurmhelper_la_OBJECTS) $(libslurm_o_LDADD) $(LINK) $(libslurmhelper_la_OBJECTS) $(libslurm_o_LDADD) force: -$(libslurm_o_LDADD) $(convenience_libs) : force +$(libslurm_o_LDADD) $(convenience_libs) $(slurmapi_add) : force @cd `dirname $@` && $(MAKE) `basename $@` # FIXME - don't export the client_io_handler_ symbols once srun is no longer diff --git a/src/api/partition_info.c b/src/api/partition_info.c index 46ced22a1de080db94334c916ab57cfa2b50f0ab..58df1d56e8f54fd1dd18af80cd2ee8a2c7f8a25b 100644 --- a/src/api/partition_info.c +++ b/src/api/partition_info.c @@ -170,7 +170,7 @@ char *slurm_sprint_partition_info ( partition_info_t * part_ptr, char time_line[32]; secs2time_str(part_ptr->default_time * 60, time_line, sizeof(time_line)); - sprintf(tmp_line, " DefaultTime=%s", time_line); + sprintf(tmp_line, "DefaultTime=%s", time_line); } xstrcat(out, tmp_line); if (part_ptr->disable_root_jobs) diff --git a/src/api/step_launch.c b/src/api/step_launch.c index 46161e5c6b99a6ea96eb4688602fc90fc242093f..599f1c27556b3268ff3a88603d96267831e5899f 100644 --- a/src/api/step_launch.c +++ b/src/api/step_launch.c @@ -328,43 +328,64 @@ done: return rc; } +static void _step_abort(slurm_step_ctx_t *ctx) +{ + struct step_launch_state *sls = ctx->launch_state; + + if (!sls->abort_action_taken) { + slurm_kill_job_step(ctx->job_id, ctx->step_resp->job_step_id, + SIGKILL); + sls->abort_action_taken = true; + } +} + /* * Block until all tasks have started. */ int slurm_step_launch_wait_start(slurm_step_ctx_t *ctx) { struct step_launch_state *sls = ctx->launch_state; + struct timespec ts; + + ts.tv_sec = time(NULL); + ts.tv_nsec = 0; + ts.tv_sec += 600; /* 10 min allowed for launch */ + /* Wait for all tasks to start */ pthread_mutex_lock(&sls->lock); while (bit_set_count(sls->tasks_started) < sls->tasks_requested) { if (sls->abort) { - if (!sls->abort_action_taken) { - slurm_kill_job_step(ctx->job_id, - ctx->step_resp-> - job_step_id, - SIGKILL); - sls->abort_action_taken = true; - } + _step_abort(ctx); + pthread_mutex_unlock(&sls->lock); + return SLURM_ERROR; + } + if (pthread_cond_timedwait(&sls->cond, &sls->lock, &ts) == + ETIMEDOUT) { + error("timeout waiting for task launch"); + sls->abort = true; + _step_abort(ctx); + pthread_cond_broadcast(&sls->cond); pthread_mutex_unlock(&sls->lock); return SLURM_ERROR; } - pthread_cond_wait(&sls->cond, &sls->lock); } if (sls->user_managed_io) { - while(sls->io.user->connected < sls->tasks_requested) { + while (sls->io.user->connected < sls->tasks_requested) { if (sls->abort) { - if (!sls->abort_action_taken) { - slurm_kill_job_step( - ctx->job_id, - ctx->step_resp->job_step_id, - SIGKILL); - sls->abort_action_taken = true; - } + _step_abort(ctx); + pthread_mutex_unlock(&sls->lock); + return SLURM_ERROR; + } + if (pthread_cond_timedwait(&sls->cond, &sls->lock, + &ts) == ETIMEDOUT) { + error("timeout waiting for I/O connect"); + sls->abort = true; + _step_abort(ctx); + pthread_cond_broadcast(&sls->cond); pthread_mutex_unlock(&sls->lock); return SLURM_ERROR; } - pthread_cond_wait(&sls->cond, &sls->lock); } } diff --git a/src/common/Makefile.in b/src/common/Makefile.in index 739604861d95284aa0825a44fe3e20807c0d72c8..a7255359065ed181d57ac7e58929b4581d21a92e 100644 --- a/src/common/Makefile.in +++ b/src/common/Makefile.in @@ -280,6 +280,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/common/slurmdbd_defs.c b/src/common/slurmdbd_defs.c index e188c8228732638befe6cb97ed3eb3208b9f415b..50ee94fe35f637607ff4e4796aaf3da33f4cf2a7 100644 --- a/src/common/slurmdbd_defs.c +++ b/src/common/slurmdbd_defs.c @@ -92,6 +92,7 @@ static pthread_mutex_t slurmdbd_lock = PTHREAD_MUTEX_INITIALIZER; static pthread_cond_t slurmdbd_cond = PTHREAD_COND_INITIALIZER; static slurm_fd slurmdbd_fd = -1; static char * slurmdbd_auth_info = NULL; +static char * slurmdbd_cluster = NULL; static bool rollback_started = 0; static bool halt_agent = 0; @@ -141,6 +142,9 @@ extern int slurm_open_slurmdbd_conn(char *auth_info, bool make_agent, if (auth_info) slurmdbd_auth_info = xstrdup(auth_info); + xfree(slurmdbd_cluster); + slurmdbd_cluster = slurm_get_cluster_name(); + rollback_started = rollback; if (slurmdbd_fd < 0) { @@ -182,6 +186,7 @@ extern int slurm_close_slurmdbd_conn(void) slurm_mutex_lock(&slurmdbd_lock); _close_slurmdbd_fd(); xfree(slurmdbd_auth_info); + xfree(slurmdbd_cluster); slurm_mutex_unlock(&slurmdbd_lock); return SLURM_SUCCESS; @@ -656,8 +661,7 @@ extern int unpack_slurmdbd_msg(uint16_t rpc_version, (dbd_get_jobs_msg_t **)&resp->data, buffer); break; case DBD_INIT: - rc = slurmdbd_unpack_init_msg(rpc_version, - (dbd_init_msg_t **)&resp->data, + rc = slurmdbd_unpack_init_msg((dbd_init_msg_t **)&resp->data, buffer, slurmdbd_auth_info); break; @@ -1326,6 +1330,7 @@ static int _send_init_msg() buffer = init_buf(1024); pack16((uint16_t) DBD_INIT, buffer); + req.cluster_name = slurmdbd_cluster; req.rollback = rollback_started; req.version = SLURMDBD_VERSION; slurmdbd_pack_init_msg(SLURMDBD_VERSION, &req, buffer, @@ -1670,6 +1675,7 @@ static void _create_agent(void) /* this needs to be set because the agent thread will do nothing if the connection was closed and then opened again */ agent_shutdown = 0; + if (agent_list == NULL) { agent_list = list_create(_agent_queue_del); if (agent_list == NULL) @@ -2169,7 +2175,10 @@ void inline slurmdbd_free_get_jobs_msg(uint16_t rpc_version, void inline slurmdbd_free_init_msg(uint16_t rpc_version, dbd_init_msg_t *msg) { - xfree(msg); + if(msg) { + xfree(msg->cluster_name); + xfree(msg); + } } void inline slurmdbd_free_fini_msg(uint16_t rpc_version, @@ -2726,6 +2735,13 @@ slurmdbd_pack_init_msg(uint16_t rpc_version, dbd_init_msg_t *msg, pack16(msg->rollback, buffer); pack16(msg->version, buffer); + + /* Adding anything to this needs to happen after the version + since this is where the reciever gets the version from. */ + if(rpc_version >= 7) { + packstr(msg->cluster_name, buffer); + } + auth_cred = g_slurm_auth_create(NULL, 2, auth_info); if (auth_cred == NULL) { error("Creating authentication credential: %s", @@ -2738,24 +2754,32 @@ slurmdbd_pack_init_msg(uint16_t rpc_version, dbd_init_msg_t *msg, g_slurm_auth_errstr( g_slurm_auth_errno(auth_cred))); errno = g_slurm_auth_errno(auth_cred); - } (void) g_slurm_auth_destroy(auth_cred); } } int inline -slurmdbd_unpack_init_msg(uint16_t rpc_version, dbd_init_msg_t **msg, +slurmdbd_unpack_init_msg(dbd_init_msg_t **msg, Buf buffer, char *auth_info) { + int rc = SLURM_SUCCESS; void *auth_cred; + uint32_t tmp32; dbd_init_msg_t *msg_ptr = xmalloc(sizeof(dbd_init_msg_t)); + *msg = msg_ptr; - int rc = SLURM_SUCCESS; safe_unpack16(&msg_ptr->rollback, buffer); safe_unpack16(&msg_ptr->version, buffer); + + /* We find out the version of the caller right here so use + that as the rpc_version. */ + if(msg_ptr->version >= 7) { + safe_unpackstr_xmalloc(&msg_ptr->cluster_name, &tmp32, buffer); + } + auth_cred = g_slurm_auth_unpack(buffer); if (auth_cred == NULL) { error("Unpacking authentication credential: %s", @@ -2770,12 +2794,11 @@ slurmdbd_unpack_init_msg(uint16_t rpc_version, dbd_init_msg_t **msg, rc = ESLURM_ACCESS_DENIED; goto unpack_error; } - g_slurm_auth_destroy(auth_cred); return rc; unpack_error: - slurmdbd_free_init_msg(rpc_version, msg_ptr); + slurmdbd_free_init_msg(msg_ptr->version, msg_ptr); *msg = NULL; if(rc == SLURM_SUCCESS) rc = SLURM_ERROR; diff --git a/src/common/slurmdbd_defs.h b/src/common/slurmdbd_defs.h index 06e95f2cd32fdef7074f0c8747c906ef20cd6ca8..67059d860a19b175f00de31e2d08997e5ef3b2fd 100644 --- a/src/common/slurmdbd_defs.h +++ b/src/common/slurmdbd_defs.h @@ -76,7 +76,7 @@ * communicating with it (e.g. it will not accept messages with a * version higher than SLURMDBD_VERSION). */ -#define SLURMDBD_VERSION 06 +#define SLURMDBD_VERSION 07 #define SLURMDBD_VERSION_MIN 02 /* SLURM DBD message types */ @@ -218,6 +218,7 @@ typedef struct dbd_get_jobs_msg { } dbd_get_jobs_msg_t; typedef struct dbd_init_msg { + char *cluster_name; /* cluster this message is coming from */ uint16_t rollback; /* to allow rollbacks or not */ uint16_t version; /* protocol version */ uint32_t uid; /* UID originating connection, @@ -537,8 +538,7 @@ int inline slurmdbd_unpack_cond_msg(uint16_t rpc_version, dbd_cond_msg_t **msg, Buf buffer); int inline slurmdbd_unpack_get_jobs_msg(uint16_t rpc_version, dbd_get_jobs_msg_t **msg, Buf buffer); -int inline slurmdbd_unpack_init_msg(uint16_t rpc_version, - dbd_init_msg_t **msg, Buf buffer, +int inline slurmdbd_unpack_init_msg(dbd_init_msg_t **msg, Buf buffer, char *auth_info); int inline slurmdbd_unpack_fini_msg(uint16_t rpc_version, dbd_fini_msg_t **msg, Buf buffer); diff --git a/src/database/Makefile.in b/src/database/Makefile.in index 6205d67205aa7fcea89f86991e0ed79a20b6dfd6..d41ee55d6e93638c682a6c1335f28984c86d25df 100644 --- a/src/database/Makefile.in +++ b/src/database/Makefile.in @@ -217,6 +217,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/Makefile.in b/src/plugins/Makefile.in index dddf98d634061092d257cf7e84df177e0b7c89a6..d44c0fd57a6143695419b30e9957f481393f0437 100644 --- a/src/plugins/Makefile.in +++ b/src/plugins/Makefile.in @@ -205,6 +205,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/accounting_storage/Makefile.in b/src/plugins/accounting_storage/Makefile.in index f597a7f96c4a72e99f98fe9a80c417c5416e1805..c3fa0384d2704b1e94eecec22405cf4884e57b4d 100644 --- a/src/plugins/accounting_storage/Makefile.in +++ b/src/plugins/accounting_storage/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/accounting_storage/filetxt/Makefile.in b/src/plugins/accounting_storage/filetxt/Makefile.in index 960a8b27059699778eca4ee36ee9453f734f3454..712a77788694305488e1c610849b827a48029e17 100644 --- a/src/plugins/accounting_storage/filetxt/Makefile.in +++ b/src/plugins/accounting_storage/filetxt/Makefile.in @@ -215,6 +215,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/accounting_storage/mysql/Makefile.in b/src/plugins/accounting_storage/mysql/Makefile.in index b5c2e6cd4438bcd505c7c51ca34d60342cbe3b30..21c2d007bc079bc415d3bb5d05b14a6d50ccebdc 100644 --- a/src/plugins/accounting_storage/mysql/Makefile.in +++ b/src/plugins/accounting_storage/mysql/Makefile.in @@ -231,6 +231,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c b/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c index bfe579fbd9ad56af7b51cc554a01c975e8a5c84e..5c4693379c2a1bcb47369921fb9294530fb4a3bc 100644 --- a/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c +++ b/src/plugins/accounting_storage/mysql/accounting_storage_mysql.c @@ -10190,9 +10190,9 @@ extern int clusteracct_storage_p_node_down(mysql_conn_t *mysql_conn, cpus = node_ptr->cpus; if (reason) - my_reason = reason; + my_reason = _fix_double_quotes(reason); else - my_reason = node_ptr->reason; + my_reason = _fix_double_quotes(node_ptr->reason); debug2("inserting %s(%s) with %u cpus", node_ptr->name, cluster, cpus); @@ -10217,6 +10217,7 @@ extern int clusteracct_storage_p_node_down(mysql_conn_t *mysql_conn, "update period_end=0;", event_table, node_ptr->name, node_ptr->node_state, cluster, cpus, event_time, my_reason); + xfree(my_reason); debug4("%d(%d) query\n%s", mysql_conn->conn, __LINE__, query); rc = mysql_db_query(mysql_conn->db_conn, query); xfree(query); diff --git a/src/plugins/accounting_storage/mysql/mysql_jobacct_process.c b/src/plugins/accounting_storage/mysql/mysql_jobacct_process.c index 65033631ff886d20e760c9a90b5fb65b9a3abb43..696b557c5988f9986e49cf5be5ca08583273d3d2 100644 --- a/src/plugins/accounting_storage/mysql/mysql_jobacct_process.c +++ b/src/plugins/accounting_storage/mysql/mysql_jobacct_process.c @@ -331,7 +331,7 @@ static int _archive_script(acct_archive_cond_t *arch_cond, time_t last_submit) last_submit); return SLURM_ERROR; } - time_tm.tm_mon -= arch_cond->purge_step; + time_tm.tm_mon -= arch_cond->purge_event; time_tm.tm_isdst = -1; curr_end = mktime(&time_tm); env_array_append_fmt(&env, "SLURM_ARCHIVE_EVENTS", "%u", @@ -381,7 +381,7 @@ static int _archive_script(acct_archive_cond_t *arch_cond, time_t last_submit) last_submit); return SLURM_ERROR; } - time_tm.tm_mon -= arch_cond->purge_step; + time_tm.tm_mon -= arch_cond->purge_suspend; time_tm.tm_isdst = -1; curr_end = mktime(&time_tm); env_array_append_fmt(&env, "SLURM_ARCHIVE_SUSPEND", "%u", @@ -646,7 +646,7 @@ extern int setup_job_cond_limits(mysql_conn_t *mysql_conn, resvid_list up here */ if(job_cond->resv_list && list_count(job_cond->resv_list)) { char *query = xstrdup_printf( - "select distinct id from %s where ("); + "select distinct id from %s where (", job_table); int my_set = 0; MYSQL_RES *result = NULL; MYSQL_ROW row; diff --git a/src/plugins/accounting_storage/none/Makefile.in b/src/plugins/accounting_storage/none/Makefile.in index 4850a4f666d41fd06ee9f4df784b57b0816f0d90..fe8d624b2853fada3b26a2afd6be5fb5c54a03ae 100644 --- a/src/plugins/accounting_storage/none/Makefile.in +++ b/src/plugins/accounting_storage/none/Makefile.in @@ -214,6 +214,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/accounting_storage/pgsql/Makefile.in b/src/plugins/accounting_storage/pgsql/Makefile.in index 085f93f9164e5ff6df73db66caeccc6ad44cd0be..d001e68970d61d59e0452affc5cb54a1f9428305 100644 --- a/src/plugins/accounting_storage/pgsql/Makefile.in +++ b/src/plugins/accounting_storage/pgsql/Makefile.in @@ -227,6 +227,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/accounting_storage/slurmdbd/Makefile.in b/src/plugins/accounting_storage/slurmdbd/Makefile.in index e22df39eba9a8145a6428883c4bbb22fca645944..7362a9d010c541d6f43a9723d478945e803e7ebc 100644 --- a/src/plugins/accounting_storage/slurmdbd/Makefile.in +++ b/src/plugins/accounting_storage/slurmdbd/Makefile.in @@ -215,6 +215,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/auth/Makefile.in b/src/plugins/auth/Makefile.in index 58409fa92c1df5077c00ef5429fef53ebf1ad7e3..33c16fdc4422f371047d976511eb74e688dda0e1 100644 --- a/src/plugins/auth/Makefile.in +++ b/src/plugins/auth/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/auth/authd/Makefile.in b/src/plugins/auth/authd/Makefile.in index efa5e5e73dd0d63d698b5fa4e32b7aa4af4a4451..1cae0c28accd54559deadc54bf8ddbf565d17135 100644 --- a/src/plugins/auth/authd/Makefile.in +++ b/src/plugins/auth/authd/Makefile.in @@ -213,6 +213,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/auth/munge/Makefile.in b/src/plugins/auth/munge/Makefile.in index b0a9dd99a2bb28d1b4cbeb3945574062e9da075a..7b372924b609edf9ceb01be07cdcdc3079726f2a 100644 --- a/src/plugins/auth/munge/Makefile.in +++ b/src/plugins/auth/munge/Makefile.in @@ -214,6 +214,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/auth/none/Makefile.in b/src/plugins/auth/none/Makefile.in index d7395d272390b8f1414043ac01229059bd927997..3ed6ca3d4872da0abfb8cc3c0361adf8c4958785 100644 --- a/src/plugins/auth/none/Makefile.in +++ b/src/plugins/auth/none/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/checkpoint/Makefile.in b/src/plugins/checkpoint/Makefile.in index 1c9193fbd5a85e2ba70e231f6ec36aa8d60a3092..a2e06c5a21ebf986fd11a625feb747a70333400e 100644 --- a/src/plugins/checkpoint/Makefile.in +++ b/src/plugins/checkpoint/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/checkpoint/aix/Makefile.in b/src/plugins/checkpoint/aix/Makefile.in index 65dc405afd397011cc7b948e8d92646494a2bdb8..e66d600f8661258466b4733bc48cc579266dd547 100644 --- a/src/plugins/checkpoint/aix/Makefile.in +++ b/src/plugins/checkpoint/aix/Makefile.in @@ -217,6 +217,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/checkpoint/blcr/Makefile.in b/src/plugins/checkpoint/blcr/Makefile.in index 74cf2399366a1fc321a990a9bba3e630fbe092a6..41c755c1f7605f11e24ef04d917372c940151c0e 100644 --- a/src/plugins/checkpoint/blcr/Makefile.in +++ b/src/plugins/checkpoint/blcr/Makefile.in @@ -223,6 +223,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/checkpoint/none/Makefile.in b/src/plugins/checkpoint/none/Makefile.in index d448a35a2851dcaaa03d126f919544167829feef..9be0f76ab3d70a6506b7505765f34442be9e1062 100644 --- a/src/plugins/checkpoint/none/Makefile.in +++ b/src/plugins/checkpoint/none/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/checkpoint/ompi/Makefile.in b/src/plugins/checkpoint/ompi/Makefile.in index dda07eb81553133b78b9a99644d5b5441c733e75..888c6475665557d31ab1531aa59eaf15ffbea5d4 100644 --- a/src/plugins/checkpoint/ompi/Makefile.in +++ b/src/plugins/checkpoint/ompi/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/checkpoint/xlch/Makefile.in b/src/plugins/checkpoint/xlch/Makefile.in index ea71407e571655f9100837d1207882592de33019..905b2909f56f4dcfdcc58b0232deb185b5d526fb 100644 --- a/src/plugins/checkpoint/xlch/Makefile.in +++ b/src/plugins/checkpoint/xlch/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/crypto/Makefile.in b/src/plugins/crypto/Makefile.in index ec32a24a5c37c846dca9c81e075ea87172768e2e..cdf2981debff3c1e76e3e34bdb0af00599aae6d7 100644 --- a/src/plugins/crypto/Makefile.in +++ b/src/plugins/crypto/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/crypto/munge/Makefile.in b/src/plugins/crypto/munge/Makefile.in index 3e75d8464a7e8d603ddda9f48e4f34ac4ca048e5..647ac9c04e31f328c69d7e6bfac95b7ca29d6648 100644 --- a/src/plugins/crypto/munge/Makefile.in +++ b/src/plugins/crypto/munge/Makefile.in @@ -214,6 +214,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/crypto/openssl/Makefile.in b/src/plugins/crypto/openssl/Makefile.in index c6cca5ba637226cbf975501ea9f4beea24096265..5951a66e55a6e9a229195356acc1efbc6e7549a6 100644 --- a/src/plugins/crypto/openssl/Makefile.in +++ b/src/plugins/crypto/openssl/Makefile.in @@ -219,6 +219,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/jobacct_gather/Makefile.in b/src/plugins/jobacct_gather/Makefile.in index 3311f7fd15751974905559f26b3c9f2b65d4af31..c76e5b5c51ae4b98c6e0706a9d6c5169cd3c6a8f 100644 --- a/src/plugins/jobacct_gather/Makefile.in +++ b/src/plugins/jobacct_gather/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/jobacct_gather/aix/Makefile.am b/src/plugins/jobacct_gather/aix/Makefile.am index ccaf67b1bf80ef62fc4aa82d936878f19dbefcec..97f8ebfb4d5a2b25f442106d14388040aeeadc5c 100644 --- a/src/plugins/jobacct_gather/aix/Makefile.am +++ b/src/plugins/jobacct_gather/aix/Makefile.am @@ -9,9 +9,7 @@ INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common pkglib_LTLIBRARIES = jobacct_gather_aix.la # Null job completion logging plugin. -jobacct_gather_aix_la_SOURCES = jobacct_gather_aix.c \ - $(top_builddir)/src/slurmd/common/proctrack.c \ - $(top_builddir)/src/slurmd/common/proctrack.h +jobacct_gather_aix_la_SOURCES = jobacct_gather_aix.c jobacct_gather_aix_la_LDFLAGS = $(SO_LDFLAGS) $(PLUGIN_FLAGS) diff --git a/src/plugins/jobacct_gather/aix/Makefile.in b/src/plugins/jobacct_gather/aix/Makefile.in index 41c5231b25c128b86178b8d57dc97b5bd637900b..2c4cc91614f592300d19482e913aabf81d197ceb 100644 --- a/src/plugins/jobacct_gather/aix/Makefile.in +++ b/src/plugins/jobacct_gather/aix/Makefile.in @@ -104,7 +104,7 @@ am__base_list = \ am__installdirs = "$(DESTDIR)$(pkglibdir)" LTLIBRARIES = $(pkglib_LTLIBRARIES) jobacct_gather_aix_la_LIBADD = -am_jobacct_gather_aix_la_OBJECTS = jobacct_gather_aix.lo proctrack.lo +am_jobacct_gather_aix_la_OBJECTS = jobacct_gather_aix.lo jobacct_gather_aix_la_OBJECTS = $(am_jobacct_gather_aix_la_OBJECTS) jobacct_gather_aix_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ @@ -317,10 +318,7 @@ INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common pkglib_LTLIBRARIES = jobacct_gather_aix.la # Null job completion logging plugin. -jobacct_gather_aix_la_SOURCES = jobacct_gather_aix.c \ - $(top_builddir)/src/slurmd/common/proctrack.c \ - $(top_builddir)/src/slurmd/common/proctrack.h - +jobacct_gather_aix_la_SOURCES = jobacct_gather_aix.c jobacct_gather_aix_la_LDFLAGS = $(SO_LDFLAGS) $(PLUGIN_FLAGS) all: all-am @@ -397,7 +395,6 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jobacct_gather_aix.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proctrack.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -420,13 +417,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -proctrack.lo: $(top_builddir)/src/slurmd/common/proctrack.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT proctrack.lo -MD -MP -MF $(DEPDIR)/proctrack.Tpo -c -o proctrack.lo `test -f '$(top_builddir)/src/slurmd/common/proctrack.c' || echo '$(srcdir)/'`$(top_builddir)/src/slurmd/common/proctrack.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proctrack.Tpo $(DEPDIR)/proctrack.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_builddir)/src/slurmd/common/proctrack.c' object='proctrack.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o proctrack.lo `test -f '$(top_builddir)/src/slurmd/common/proctrack.c' || echo '$(srcdir)/'`$(top_builddir)/src/slurmd/common/proctrack.c - mostlyclean-libtool: -rm -f *.lo diff --git a/src/plugins/jobacct_gather/linux/Makefile.am b/src/plugins/jobacct_gather/linux/Makefile.am index 5d066eaee5e8f4a6584d44a77c7e6532b14ec9a4..68d280a3741b2a0d63def914e30bdc11dd095c46 100644 --- a/src/plugins/jobacct_gather/linux/Makefile.am +++ b/src/plugins/jobacct_gather/linux/Makefile.am @@ -9,9 +9,7 @@ INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common pkglib_LTLIBRARIES = jobacct_gather_linux.la # Null job completion logging plugin. -jobacct_gather_linux_la_SOURCES = jobacct_gather_linux.c \ - $(top_builddir)/src/slurmd/common/proctrack.c \ - $(top_builddir)/src/slurmd/common/proctrack.h +jobacct_gather_linux_la_SOURCES = jobacct_gather_linux.c jobacct_gather_linux_la_LDFLAGS = $(SO_LDFLAGS) $(PLUGIN_FLAGS) diff --git a/src/plugins/jobacct_gather/linux/Makefile.in b/src/plugins/jobacct_gather/linux/Makefile.in index 2b3c1ba19d0792518cbbf1d2ece183c32218d2c4..24442b3d551747dbaec34f590659d8f39b7b8187 100644 --- a/src/plugins/jobacct_gather/linux/Makefile.in +++ b/src/plugins/jobacct_gather/linux/Makefile.in @@ -104,8 +104,7 @@ am__base_list = \ am__installdirs = "$(DESTDIR)$(pkglibdir)" LTLIBRARIES = $(pkglib_LTLIBRARIES) jobacct_gather_linux_la_LIBADD = -am_jobacct_gather_linux_la_OBJECTS = jobacct_gather_linux.lo \ - proctrack.lo +am_jobacct_gather_linux_la_OBJECTS = jobacct_gather_linux.lo jobacct_gather_linux_la_OBJECTS = \ $(am_jobacct_gather_linux_la_OBJECTS) jobacct_gather_linux_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ @@ -214,6 +213,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ @@ -319,10 +319,7 @@ INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src/common pkglib_LTLIBRARIES = jobacct_gather_linux.la # Null job completion logging plugin. -jobacct_gather_linux_la_SOURCES = jobacct_gather_linux.c \ - $(top_builddir)/src/slurmd/common/proctrack.c \ - $(top_builddir)/src/slurmd/common/proctrack.h - +jobacct_gather_linux_la_SOURCES = jobacct_gather_linux.c jobacct_gather_linux_la_LDFLAGS = $(SO_LDFLAGS) $(PLUGIN_FLAGS) all: all-am @@ -399,7 +396,6 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jobacct_gather_linux.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proctrack.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -422,13 +418,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -proctrack.lo: $(top_builddir)/src/slurmd/common/proctrack.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT proctrack.lo -MD -MP -MF $(DEPDIR)/proctrack.Tpo -c -o proctrack.lo `test -f '$(top_builddir)/src/slurmd/common/proctrack.c' || echo '$(srcdir)/'`$(top_builddir)/src/slurmd/common/proctrack.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proctrack.Tpo $(DEPDIR)/proctrack.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_builddir)/src/slurmd/common/proctrack.c' object='proctrack.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o proctrack.lo `test -f '$(top_builddir)/src/slurmd/common/proctrack.c' || echo '$(srcdir)/'`$(top_builddir)/src/slurmd/common/proctrack.c - mostlyclean-libtool: -rm -f *.lo diff --git a/src/plugins/jobacct_gather/none/Makefile.in b/src/plugins/jobacct_gather/none/Makefile.in index 040c3e6e58c375a9707770c60ef3d8f8f2051cc5..094e22de6150b81e0ce99cd140fecc2bbd0b0947 100644 --- a/src/plugins/jobacct_gather/none/Makefile.in +++ b/src/plugins/jobacct_gather/none/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/jobcomp/Makefile.in b/src/plugins/jobcomp/Makefile.in index 823d2c6a54f155d4ecccfdcf8e33ecec24e2d772..38ce1ddf17d34515851a951908a742d117709d47 100644 --- a/src/plugins/jobcomp/Makefile.in +++ b/src/plugins/jobcomp/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/jobcomp/filetxt/Makefile.in b/src/plugins/jobcomp/filetxt/Makefile.in index 1803ca1664b83002d5cca148fad8cbc7b5ecd0c0..56ef3a5e748639a65ce3596394b66aa63a4bd59c 100644 --- a/src/plugins/jobcomp/filetxt/Makefile.in +++ b/src/plugins/jobcomp/filetxt/Makefile.in @@ -213,6 +213,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/jobcomp/mysql/Makefile.in b/src/plugins/jobcomp/mysql/Makefile.in index ab15a307798ea1a0adb87fc2bd1b6942128fad01..84422105920ce1d8af90ac4c8239cc6684180332 100644 --- a/src/plugins/jobcomp/mysql/Makefile.in +++ b/src/plugins/jobcomp/mysql/Makefile.in @@ -221,6 +221,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/jobcomp/none/Makefile.in b/src/plugins/jobcomp/none/Makefile.in index bfd204a38f039635204fe5ecfb0902f83df6528d..bae6d574d3f695d41a50ca92e0f86b4c8b174800 100644 --- a/src/plugins/jobcomp/none/Makefile.in +++ b/src/plugins/jobcomp/none/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/jobcomp/pgsql/Makefile.in b/src/plugins/jobcomp/pgsql/Makefile.in index e59d3efe8b72d98b882e70d4aa6a8023df106b66..7dfe436c5eb64639140b60fc8f590e9dbd6521a6 100644 --- a/src/plugins/jobcomp/pgsql/Makefile.in +++ b/src/plugins/jobcomp/pgsql/Makefile.in @@ -221,6 +221,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/jobcomp/script/Makefile.in b/src/plugins/jobcomp/script/Makefile.in index 37583fee7f1e6ae5d7415f1d245c542ef2805d73..1c0b4a259924076f2b205b8a9479e2b97c3e8325 100644 --- a/src/plugins/jobcomp/script/Makefile.in +++ b/src/plugins/jobcomp/script/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/mpi/Makefile.in b/src/plugins/mpi/Makefile.in index e38a2c1a8d538a83f4df37315e38ae6be351ccae..bbb4ecad56b07920545b1c9cbaf97546aba341b5 100644 --- a/src/plugins/mpi/Makefile.in +++ b/src/plugins/mpi/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/mpi/lam/Makefile.in b/src/plugins/mpi/lam/Makefile.in index 1513e31313871ffb72bbc8a31f8cb45240c0030e..fa9cc05614a6f9e993fc3c35a2bcb3bb63492067 100644 --- a/src/plugins/mpi/lam/Makefile.in +++ b/src/plugins/mpi/lam/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/mpi/mpich1_p4/Makefile.in b/src/plugins/mpi/mpich1_p4/Makefile.in index f455296919f9a254d666cdb4d136ea0cdf5186f7..2b3cd96130e26f878cca17b3f0ebbd09e83b658f 100644 --- a/src/plugins/mpi/mpich1_p4/Makefile.in +++ b/src/plugins/mpi/mpich1_p4/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/mpi/mpich1_shmem/Makefile.in b/src/plugins/mpi/mpich1_shmem/Makefile.in index 775393e474c6f62a41b237c9cb2b052ab0936904..f47fe27c7c55ba14b037668895ffa3ef543a8eb2 100644 --- a/src/plugins/mpi/mpich1_shmem/Makefile.in +++ b/src/plugins/mpi/mpich1_shmem/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/mpi/mpichgm/Makefile.in b/src/plugins/mpi/mpichgm/Makefile.in index fa4e2006135c5df121e516edc16858edf6a903fd..87b73500cd908710cdc1a4b6815453cf60d72c63 100644 --- a/src/plugins/mpi/mpichgm/Makefile.in +++ b/src/plugins/mpi/mpichgm/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/mpi/mpichmx/Makefile.in b/src/plugins/mpi/mpichmx/Makefile.in index b84449e4c3b8db48af971a00b3088e2d1c8b782b..4d63a5c7c7d831e56d60981d1aab985e6b25c51a 100644 --- a/src/plugins/mpi/mpichmx/Makefile.in +++ b/src/plugins/mpi/mpichmx/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/mpi/mvapich/Makefile.in b/src/plugins/mpi/mvapich/Makefile.in index 4ef564f70912fdb705745d3817db88e14381a3e8..418e86413c861ba7ff4e59a6367772760635a7e6 100644 --- a/src/plugins/mpi/mvapich/Makefile.in +++ b/src/plugins/mpi/mvapich/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/mpi/mvapich/mvapich.c b/src/plugins/mpi/mvapich/mvapich.c index 407389d7f493e33d39649d7e7d246a1e94a49039..2d6534d789297d3b1bcd5285d74b0547e4e86d98 100644 --- a/src/plugins/mpi/mvapich/mvapich.c +++ b/src/plugins/mpi/mvapich/mvapich.c @@ -294,10 +294,8 @@ static int mvapich_terminate_job (mvapich_state_t *st, const char *msg, ...) } slurm_kill_job_step (st->job->jobid, st->job->stepid, SIGKILL); - /* Give srun a chance to terminate job */ - sleep (5); - /* exit forcefully */ - exit (1); + kill(getpid(), SIGTERM); /* Needed for better srun cleanup */ + pthread_exit(NULL); /* NORETURN */ } diff --git a/src/plugins/mpi/none/Makefile.in b/src/plugins/mpi/none/Makefile.in index 5113f8af0a0cbdd0199347cd735a99db5d129470..78e442d027752b66f7e8d151176dcbb7fef28c61 100644 --- a/src/plugins/mpi/none/Makefile.in +++ b/src/plugins/mpi/none/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/mpi/openmpi/Makefile.in b/src/plugins/mpi/openmpi/Makefile.in index 4f4ee066af57c00c9b36e86c26add58b4af54e6b..2f6aac67daf3cb83432a031945134ec5862bb965 100644 --- a/src/plugins/mpi/openmpi/Makefile.in +++ b/src/plugins/mpi/openmpi/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/preempt/Makefile.in b/src/plugins/preempt/Makefile.in index 32513370a71d3e42d199741a09076cf10a6b535d..37618c1e5535c2a8750179ed6eeca89b9fd710ed 100644 --- a/src/plugins/preempt/Makefile.in +++ b/src/plugins/preempt/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/preempt/none/Makefile.in b/src/plugins/preempt/none/Makefile.in index 8e74bfc6718ab46c4d4f4fe8894b2d72ba92626d..2444f2eadadc5cef465a2ed643a02f2e1ae6d15b 100644 --- a/src/plugins/preempt/none/Makefile.in +++ b/src/plugins/preempt/none/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/preempt/partition_prio/Makefile.in b/src/plugins/preempt/partition_prio/Makefile.in index 6e6bc2f8861bd11c474ea282cb78a909876c893e..afaf4bb35679da6cd662207373e2c8554e1eba2f 100644 --- a/src/plugins/preempt/partition_prio/Makefile.in +++ b/src/plugins/preempt/partition_prio/Makefile.in @@ -214,6 +214,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/preempt/qos/Makefile.in b/src/plugins/preempt/qos/Makefile.in index c99af8251b3ddf326cc0531e1b9aaa76b6742926..467fa52a3034ef66f4acf3e318f4d898a2052f53 100644 --- a/src/plugins/preempt/qos/Makefile.in +++ b/src/plugins/preempt/qos/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/priority/Makefile.in b/src/plugins/priority/Makefile.in index 2b83e1012c8e0f2c53e4410c3086e4825b7b3f2d..764a99ad5aaedbf0aef4f14f8ed3b495ce44f7ed 100644 --- a/src/plugins/priority/Makefile.in +++ b/src/plugins/priority/Makefile.in @@ -205,6 +205,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/priority/basic/Makefile.in b/src/plugins/priority/basic/Makefile.in index fcebedcd10bfc0676a9378472c7db71e4014e80b..62ebaea9899d7184bb66d58ff30122fb03b87779 100644 --- a/src/plugins/priority/basic/Makefile.in +++ b/src/plugins/priority/basic/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/priority/multifactor/Makefile.in b/src/plugins/priority/multifactor/Makefile.in index a7f4df4f2e81677afb64d9aceb703c37bffb5bc3..93909bf0e2368c3018e6b82bdd899065280264f9 100644 --- a/src/plugins/priority/multifactor/Makefile.in +++ b/src/plugins/priority/multifactor/Makefile.in @@ -213,6 +213,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/proctrack/Makefile.in b/src/plugins/proctrack/Makefile.in index 018c8f1018581c217b0948ba8c26065af29cf224..b6134d24630918234296c360ce34d6cc96c73217 100644 --- a/src/plugins/proctrack/Makefile.in +++ b/src/plugins/proctrack/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/proctrack/aix/Makefile.in b/src/plugins/proctrack/aix/Makefile.in index f51770c84d27ef8b17b45d1dc5046ef8d53f69d5..ebab37431cfca11113372a350ae2a83638d5345b 100644 --- a/src/plugins/proctrack/aix/Makefile.in +++ b/src/plugins/proctrack/aix/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/proctrack/linuxproc/Makefile.in b/src/plugins/proctrack/linuxproc/Makefile.in index 75bf676df58f45b3e6848e8574d4d7220164905f..93b5fdf42b7f3529f778b860a7886dccf250cc39 100644 --- a/src/plugins/proctrack/linuxproc/Makefile.in +++ b/src/plugins/proctrack/linuxproc/Makefile.in @@ -213,6 +213,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/proctrack/lua/Makefile.in b/src/plugins/proctrack/lua/Makefile.in index ff56ab61d301c11dea44891b1bf92f171076bea2..7d7c435d247bffc4cb84007346153e183359b511 100644 --- a/src/plugins/proctrack/lua/Makefile.in +++ b/src/plugins/proctrack/lua/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/proctrack/pgid/Makefile.in b/src/plugins/proctrack/pgid/Makefile.in index 08bfcb4d0d58cd784ba3a7661e3696b19195b0c1..bd4332e5d44dc038c57cb87e37df677511cbc459 100644 --- a/src/plugins/proctrack/pgid/Makefile.in +++ b/src/plugins/proctrack/pgid/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/proctrack/rms/Makefile.in b/src/plugins/proctrack/rms/Makefile.in index 163f74cefc8bb290e2a7a08f8f7bf2bc55347671..484dda768b32e600ec39a87ba8354923758f846f 100644 --- a/src/plugins/proctrack/rms/Makefile.in +++ b/src/plugins/proctrack/rms/Makefile.in @@ -213,6 +213,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/proctrack/sgi_job/Makefile.in b/src/plugins/proctrack/sgi_job/Makefile.in index 3440b4c9fec4886f29b274b0038f2013e8fbdb52..7d5fc413133aa0356a33841cd53a2df75134de28 100644 --- a/src/plugins/proctrack/sgi_job/Makefile.in +++ b/src/plugins/proctrack/sgi_job/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/sched/Makefile.in b/src/plugins/sched/Makefile.in index 98078453aa5ff1d72c5f9a96645bef442a4c04a9..f38396d6d9f89fd805c3db5f35d351d4261307dd 100644 --- a/src/plugins/sched/Makefile.in +++ b/src/plugins/sched/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/sched/backfill/Makefile.in b/src/plugins/sched/backfill/Makefile.in index 84a54976abeb6ee0004021c4a33444127dc07872..290f2ce950363e2644d38270e35bd2b7f073d7a3 100644 --- a/src/plugins/sched/backfill/Makefile.in +++ b/src/plugins/sched/backfill/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/sched/builtin/Makefile.in b/src/plugins/sched/builtin/Makefile.in index d49772d5481282c792e86f753443b071c93b75c4..9557e61feee14800ff8f16465075e5a573fc0fff 100644 --- a/src/plugins/sched/builtin/Makefile.in +++ b/src/plugins/sched/builtin/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/sched/hold/Makefile.in b/src/plugins/sched/hold/Makefile.in index dbe8064b2c020dc0cb60b50b1272bb4077aab6e9..ae8d731bf56e3aa43c1dd713fdf2f0d803f8a361 100644 --- a/src/plugins/sched/hold/Makefile.in +++ b/src/plugins/sched/hold/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/sched/wiki/Makefile.in b/src/plugins/sched/wiki/Makefile.in index a1305bfb2adc8a46554614de5c736aef31e07f79..fb0a63e9629e3318f2e5d0f4291175ffdaddf54d 100644 --- a/src/plugins/sched/wiki/Makefile.in +++ b/src/plugins/sched/wiki/Makefile.in @@ -214,6 +214,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/sched/wiki2/Makefile.in b/src/plugins/sched/wiki2/Makefile.in index 20654f183908d183d9989f5af9e06a94fe087fdb..e5f545d23f8ff3ab96f3e540c0f0910ac16a1ca2 100644 --- a/src/plugins/sched/wiki2/Makefile.in +++ b/src/plugins/sched/wiki2/Makefile.in @@ -217,6 +217,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/sched/wiki2/get_jobs.c b/src/plugins/sched/wiki2/get_jobs.c index 84212807f9b2af09791f82ee584c6b7c4078e766..e8fb2a5af0ec05c4bc9ec38af9058d29afbd9b0f 100644 --- a/src/plugins/sched/wiki2/get_jobs.c +++ b/src/plugins/sched/wiki2/get_jobs.c @@ -94,6 +94,7 @@ reject_msg_t reject_msgs[REJECT_MSG_MAX]; * [RFEATURES=<features>;] required features, if any, * NOTE: OR operator not supported * [HOSTLIST=<node1:node2>;] list of required nodes, if any + * [EXCLUDE_HOSTLIST=<node1:node2>;list of excluded nodes, if any * [STARTDATE=<uts>;] earliest start time, if any * [MAXNODES=<nodes>;] maximum number of nodes, 0 if no limit * [TASKLIST=<node1:node2>;] nodes in use, if running or completing @@ -267,6 +268,16 @@ static char * _dump_job(struct job_record *job_ptr, time_t update_time) xstrcat(buf, tmp); xfree(hosts); } + if ((job_ptr->details) && + (job_ptr->details->exc_nodes) && + (job_ptr->details->exc_nodes[0])) { + char *hosts = bitmap2wiki_node_name( + job_ptr->details->exc_node_bitmap); + snprintf(tmp, sizeof(tmp), + "EXCLUDE_HOSTLIST=%s;", hosts); + xstrcat(buf, tmp); + xfree(hosts); + } if ((job_ptr->details) && (job_ptr->details->begin_time)) { snprintf(tmp, sizeof(tmp), "STARTDATE=%u;", (uint32_t) diff --git a/src/plugins/select/Makefile.in b/src/plugins/select/Makefile.in index 1e1ea872d385342ae8df0d5b8cc7145d452dd66d..c65a6c10086f409f74f658b5a1e134a3b3c58350 100644 --- a/src/plugins/select/Makefile.in +++ b/src/plugins/select/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/select/bluegene/Makefile.in b/src/plugins/select/bluegene/Makefile.in index 64369e31336d9e7872790ec4695bcd32cd01fab5..f4d0bca27b64ce871e8e18985041866d7d012e26 100644 --- a/src/plugins/select/bluegene/Makefile.in +++ b/src/plugins/select/bluegene/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/select/bluegene/block_allocator/Makefile.in b/src/plugins/select/bluegene/block_allocator/Makefile.in index bcd070e50512b7fb2ab02a62063f3f9c74197acb..f0ac8d5f52287dc1c52da1bca5e5afdf90a7bfe9 100644 --- a/src/plugins/select/bluegene/block_allocator/Makefile.in +++ b/src/plugins/select/bluegene/block_allocator/Makefile.in @@ -204,6 +204,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/select/bluegene/block_allocator/block_allocator.c b/src/plugins/select/bluegene/block_allocator/block_allocator.c index bb59fe35b37fac8bc1c03ba09d13261e8d965297..45c1f15815442ce1d13b65940200f22a8d842ab0 100644 --- a/src/plugins/select/bluegene/block_allocator/block_allocator.c +++ b/src/plugins/select/bluegene/block_allocator/block_allocator.c @@ -1,7 +1,7 @@ /*****************************************************************************\ * block_allocator.c - Assorted functions for layout of bluegene blocks, * wiring, mapping for smap, etc. - * $Id: block_allocator.c 19173 2009-12-15 22:36:32Z da $ + * $Id: block_allocator.c 19402 2010-02-04 01:02:41Z jette $ ***************************************************************************** * Copyright (C) 2004-2007 The Regents of the University of California. * Copyright (C) 2008-2009 Lawrence Livermore National Security. @@ -1877,13 +1877,10 @@ extern int set_all_bps_except(char *bps) y = temp; temp = start % HOSTLIST_BASE; z = temp; - if((ba_system_ptr->grid[x][y][z].state == NODE_STATE_UNKNOWN) - || (ba_system_ptr->grid[x][y][z].state == NODE_STATE_IDLE)) - ba_system_ptr->grid[x][y][z].state = NODE_STATE_END; + /* mark with an impossible state bit */ + ba_system_ptr->grid[x][y][z].state |= NODE_RESUME; #else - if((ba_system_ptr->grid[x].state == NODE_STATE_UNKNOWN) - || (ba_system_ptr->grid[x].state == NODE_STATE_IDLE)) - ba_system_ptr->grid[x].state = NODE_STATE_END; + ba_system_ptr->grid[x].state |= NODE_RESUME; #endif free(host); } @@ -1894,19 +1891,18 @@ extern int set_all_bps_except(char *bps) for (y = 0; y < DIM_SIZE[Y]; y++) for (z = 0; z < DIM_SIZE[Z]; z++) { if(ba_system_ptr->grid[x][y][z].state - == NODE_STATE_END) { - ba_system_ptr->grid[x][y][z].state - = NODE_STATE_IDLE; - ba_system_ptr->grid[x][y][z].used = - false; + & NODE_RESUME) { + /* clear the bit and mark as unused */ + ba_system_ptr->grid[x][y][z].state &= + ~NODE_RESUME; } else if(!ba_system_ptr->grid[x][y][z].used) { ba_system_ptr->grid[x][y][z].used = 2; } } #else - if(ba_system_ptr->grid[x].state == NODE_STATE_END) { - ba_system_ptr->grid[x].state = NODE_STATE_IDLE; - ba_system_ptr->grid[x].used = false; + if(ba_system_ptr->grid[x].state & NODE_RESUME) { + /* clear the bit and mark as unused */ + ba_system_ptr->grid[x].state &= ~NODE_RESUME; } else if(!ba_system_ptr->grid[x].used) { ba_system_ptr->grid[x].used = 2; } diff --git a/src/plugins/select/bluegene/plugin/Makefile.in b/src/plugins/select/bluegene/plugin/Makefile.in index 7cbeeae36f53c91b342cdef8ae142f0d8fb0a427..922e7aa30de69f9f65388021dcb243ca42f615b8 100644 --- a/src/plugins/select/bluegene/plugin/Makefile.in +++ b/src/plugins/select/bluegene/plugin/Makefile.in @@ -279,6 +279,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/select/cons_res/Makefile.in b/src/plugins/select/cons_res/Makefile.in index 59670519048048702e7685a977384e0aa7c94aa5..5c911d34843fda7bd131bdf0b815a982901095f3 100644 --- a/src/plugins/select/cons_res/Makefile.in +++ b/src/plugins/select/cons_res/Makefile.in @@ -213,6 +213,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/select/cons_res/dist_tasks.c b/src/plugins/select/cons_res/dist_tasks.c index 147fce996120f574a569a5a5449e54cf654632c4..f83e37f23e9ea8cc3456835bfd298e64eb7b4359 100644 --- a/src/plugins/select/cons_res/dist_tasks.c +++ b/src/plugins/select/cons_res/dist_tasks.c @@ -192,7 +192,8 @@ static void _block_sync_core_bitmap(struct job_record *job_ptr, alloc_cores = true; #endif - if (job_ptr->details && job_ptr->details->mc_ptr) + if (job_ptr->details && job_ptr->details->mc_ptr && + job_ptr->details->mc_ptr->ntasks_per_core) ntasks_per_core = job_ptr->details->mc_ptr->ntasks_per_core; size = bit_size(job_res->node_bitmap); @@ -275,7 +276,8 @@ static void _cyclic_sync_core_bitmap(struct job_record *job_ptr, alloc_cores = true; #endif core_map = job_res->core_bitmap; - if (job_ptr->details && job_ptr->details->mc_ptr) + if (job_ptr->details && job_ptr->details->mc_ptr && + job_ptr->details->mc_ptr->ntasks_per_core) ntasks_per_core = job_ptr->details->mc_ptr->ntasks_per_core; sock_size = select_node_record[0].sockets; diff --git a/src/plugins/select/cons_res/job_test.c b/src/plugins/select/cons_res/job_test.c index f6c396f0915115e3ac37e51e0e80abae70f8e9c3..717b6e042b379565daba4e77bac76177e264a16e 100644 --- a/src/plugins/select/cons_res/job_test.c +++ b/src/plugins/select/cons_res/job_test.c @@ -144,8 +144,12 @@ uint16_t _allocate_sockets(struct job_record *job_ptr, bitstr_t *core_map, if (job_ptr->details && job_ptr->details->mc_ptr) { min_cores = job_ptr->details->mc_ptr->min_cores; min_sockets = job_ptr->details->mc_ptr->min_sockets; - ntasks_per_core = job_ptr->details->mc_ptr->ntasks_per_core; - ntasks_per_socket = job_ptr->details->mc_ptr->ntasks_per_socket; + if (job_ptr->details->mc_ptr->ntasks_per_core) { + ntasks_per_core = job_ptr->details->mc_ptr-> + ntasks_per_core; + } + ntasks_per_socket = job_ptr->details->mc_ptr-> + ntasks_per_socket; } /* These are the job parameters that we must respect: @@ -286,6 +290,12 @@ uint16_t _allocate_sockets(struct job_record *job_ptr, bitstr_t *core_map, num_tasks = MIN(num_tasks, c); avail_cpus = num_tasks * cpus_per_task; } + if (job_ptr->details->ntasks_per_node && + (num_tasks < job_ptr->details->ntasks_per_node)) { + /* insufficient resources on this node */ + num_tasks = 0; + goto fini; + } /* Step 4 - make sure that ntasks_per_socket is enforced when * allocating cores @@ -367,7 +377,10 @@ uint16_t _allocate_cores(struct job_record *job_ptr, bitstr_t *core_map, if (!cpu_type && job_ptr->details && job_ptr->details->mc_ptr) { min_cores = job_ptr->details->mc_ptr->min_cores; min_sockets = job_ptr->details->mc_ptr->min_sockets; - ntasks_per_core = job_ptr->details->mc_ptr->ntasks_per_core; + if (job_ptr->details->mc_ptr->ntasks_per_core) { + ntasks_per_core = job_ptr->details->mc_ptr-> + ntasks_per_core; + } } /* These are the job parameters that we must respect: @@ -489,6 +502,12 @@ uint16_t _allocate_cores(struct job_record *job_ptr, bitstr_t *core_map, num_tasks = MIN(num_tasks, c); avail_cpus = num_tasks * cpus_per_task; } + if (job_ptr->details->ntasks_per_node && + (num_tasks < job_ptr->details->ntasks_per_node)) { + /* insufficient resources on this node */ + num_tasks = 0; + goto fini; + } /* Step 4 */ for (c = core_begin; c < core_end && avail_cpus > 0; c++) { @@ -603,19 +622,21 @@ uint16_t _can_job_run_on_node(struct job_record *job_ptr, bitstr_t *core_map, } -/* Test to see if a node already has running jobs. - * if (sharing_only) then only check sharing partitions. This is because +/* Test to see if a node already has running jobs for _other_ partitions. + * If (sharing_only) then only check sharing partitions. This is because * the job was submitted to a single-row partition which does not share * allocated CPUs with multi-row partitions. */ static int _is_node_busy(struct part_res_record *p_ptr, uint32_t node_i, - int sharing_only) + int sharing_only, struct part_record *my_part_ptr) { uint32_t r, cpu_begin = cr_get_coremap_offset(node_i); uint32_t i, cpu_end = cr_get_coremap_offset(node_i+1); for (; p_ptr; p_ptr = p_ptr->next) { - if (sharing_only && p_ptr->num_rows < 2) + if (sharing_only && + ((p_ptr->num_rows < 2) || + (p_ptr->part_ptr == my_part_ptr))) continue; if (!p_ptr->row) continue; @@ -695,7 +716,8 @@ static int _verify_node_state(struct part_res_record *cr_part_ptr, } /* cannot use this node if it is running jobs * in sharing partitions */ - if ( _is_node_busy(cr_part_ptr, i, 1) ) { + if (_is_node_busy(cr_part_ptr, i, 1, + job_ptr->part_ptr)) { debug3("cons_res: _vns: node %s sharing?", select_node_record[i].node_ptr->name); goto clear_bit; @@ -704,7 +726,8 @@ static int _verify_node_state(struct part_res_record *cr_part_ptr, /* node is NODE_CR_AVAILABLE - check job request */ } else { if (job_node_req == NODE_CR_RESERVED) { - if ( _is_node_busy(cr_part_ptr, i, 0) ) { + if (_is_node_busy(cr_part_ptr, i, 0, + job_ptr->part_ptr)) { debug3("cons_res: _vns: node %s busy", select_node_record[i]. node_ptr->name); @@ -713,7 +736,8 @@ static int _verify_node_state(struct part_res_record *cr_part_ptr, } else if (job_node_req == NODE_CR_ONE_ROW) { /* cannot use this node if it is running jobs * in sharing partitions */ - if ( _is_node_busy(cr_part_ptr, i, 1) ) { + if (_is_node_busy(cr_part_ptr, i, 1, + job_ptr->part_ptr)) { debug3("cons_res: _vns: node %s vbusy", select_node_record[i]. node_ptr->name); diff --git a/src/plugins/select/cons_res/select_cons_res.c b/src/plugins/select/cons_res/select_cons_res.c index 8470232f698ff47eaec25154e9044ba05f215a6b..ef2e047a568a220c264516e86faffa210e6899d9 100644 --- a/src/plugins/select/cons_res/select_cons_res.c +++ b/src/plugins/select/cons_res/select_cons_res.c @@ -1084,22 +1084,23 @@ static uint16_t _get_job_node_req(struct job_record *job_ptr) { int max_share = job_ptr->part_ptr->max_share; - if (max_share == 0) + if (max_share == 0) /* Partition Shared=EXCLUSIVE */ return NODE_CR_RESERVED; - /* sharing if part=FORCE with count > 1 */ + /* Partition Shared=FORCE with count > 1 */ if ((max_share & SHARED_FORCE) && ((max_share & (~SHARED_FORCE)) > 1)) return NODE_CR_AVAILABLE; - /* Shared=NO or Shared=YES */ + /* Partition is Shared=NO or Shared=YES */ if (job_ptr->details->shared == 0) /* user has requested exclusive nodes */ return NODE_CR_RESERVED; + if ((max_share > 1) && (job_ptr->details->shared == 1)) - /* part allows sharing, and - * the user has requested it */ + /* part allows sharing, and the user has requested it */ return NODE_CR_AVAILABLE; + return NODE_CR_ONE_ROW; } diff --git a/src/plugins/select/linear/Makefile.in b/src/plugins/select/linear/Makefile.in index 9f1a82c3a686319a12846f1bcc0e0ff2ce18c374..f93a6efd15559a0d53eddd22a7b9938a7a536f27 100644 --- a/src/plugins/select/linear/Makefile.in +++ b/src/plugins/select/linear/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/select/linear/select_linear.c b/src/plugins/select/linear/select_linear.c index 7f3f13f305cc0b0ec47b1fd53a17ec77dbdacd73..59a6c700cfefa0753fec792d2168cabc72aa7976 100644 --- a/src/plugins/select/linear/select_linear.c +++ b/src/plugins/select/linear/select_linear.c @@ -1551,8 +1551,7 @@ static void _init_node_cr(void) /* record running and suspended jobs in node_cr_records */ job_iterator = list_iterator_create(job_list); while ((job_ptr = (struct job_record *) list_next(job_iterator))) { - if (!IS_JOB_RUNNING(job_ptr) && !IS_JOB_SUSPENDED(job_ptr) && - !IS_JOB_COMPLETING(job_ptr)) + if (!IS_JOB_RUNNING(job_ptr) && !IS_JOB_SUSPENDED(job_ptr)) continue; if ((job_resrcs_ptr = job_ptr->job_resrcs) == NULL) { error("job %u lacks a job_resources struct", @@ -1606,8 +1605,7 @@ static void _init_node_cr(void) continue; } part_cr_ptr->tot_job_cnt++; - if (IS_JOB_RUNNING(job_ptr) || - IS_JOB_COMPLETING(job_ptr)) { + if (IS_JOB_RUNNING(job_ptr)) { _add_run_job(part_cr_ptr, job_ptr->job_id); part_cr_ptr->run_job_cnt++; diff --git a/src/plugins/switch/Makefile.in b/src/plugins/switch/Makefile.in index 3a4ed580150cfce9d34c18806b4e5f34eb0ea27b..55a53ba4939c591c0d01f76837f55abc43896db4 100644 --- a/src/plugins/switch/Makefile.in +++ b/src/plugins/switch/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/switch/elan/Makefile.in b/src/plugins/switch/elan/Makefile.in index 265c0f85f916b6cf9f21df48525baed5f66eb8ac..f5cc1f5274d19245127eb9b58abaf88811f12cfc 100644 --- a/src/plugins/switch/elan/Makefile.in +++ b/src/plugins/switch/elan/Makefile.in @@ -218,6 +218,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/switch/federation/Makefile.in b/src/plugins/switch/federation/Makefile.in index 3cd763a2be2f521cf310b9852348722684bb5b7a..31f0d66200e4ea7188925c1c360b810ee3c828c2 100644 --- a/src/plugins/switch/federation/Makefile.in +++ b/src/plugins/switch/federation/Makefile.in @@ -221,6 +221,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/switch/none/Makefile.in b/src/plugins/switch/none/Makefile.in index 4a5c2cf899fd53b05e6eeb683854d7ba8a5642da..1a853009de99c653190d96bbbaa39da474d24dec 100644 --- a/src/plugins/switch/none/Makefile.in +++ b/src/plugins/switch/none/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/task/Makefile.in b/src/plugins/task/Makefile.in index 3e9c1cfc3754c27ea557da378a527c8868dee9dc..397713f873a449a68ae6844067a4a106780fc6fc 100644 --- a/src/plugins/task/Makefile.in +++ b/src/plugins/task/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/task/affinity/Makefile.in b/src/plugins/task/affinity/Makefile.in index 76b9d4f1d64d00fbea08243f0f472a54569e6b08..e0ac48a4906d83c29ce2f77a3e624d77942cfb88 100644 --- a/src/plugins/task/affinity/Makefile.in +++ b/src/plugins/task/affinity/Makefile.in @@ -224,6 +224,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/task/none/Makefile.in b/src/plugins/task/none/Makefile.in index aa9f1f9da698411cbb07e9629e8627fa9a5c32e7..1b45c09d5d159738d6a8d894ce1496e65e28f425 100644 --- a/src/plugins/task/none/Makefile.in +++ b/src/plugins/task/none/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/topology/3d_torus/Makefile.in b/src/plugins/topology/3d_torus/Makefile.in index b808c7f7f060d411745de89c4ba65a86199a4aff..990e3e1a1c6c1cd1961a738a558761041bcab51c 100644 --- a/src/plugins/topology/3d_torus/Makefile.in +++ b/src/plugins/topology/3d_torus/Makefile.in @@ -213,6 +213,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/topology/Makefile.in b/src/plugins/topology/Makefile.in index 169ad6b2ecba82d25b5932dda1b690df7dc54130..416b587a99e85cf254f9ff308524b118904fa2c9 100644 --- a/src/plugins/topology/Makefile.in +++ b/src/plugins/topology/Makefile.in @@ -207,6 +207,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/topology/none/Makefile.in b/src/plugins/topology/none/Makefile.in index 2aff5ea5b256039ed4e673bdb45939ba3051c16a..9a1c24b923a845f85417964d0225606fa3ab6c47 100644 --- a/src/plugins/topology/none/Makefile.in +++ b/src/plugins/topology/none/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/topology/tree/Makefile.in b/src/plugins/topology/tree/Makefile.in index 51cb109f4eab4ba60894c06cf9c95fee53b6daaa..da5cb3bb0a66efe6a7db11a6a0dc1c4d613e172e 100644 --- a/src/plugins/topology/tree/Makefile.in +++ b/src/plugins/topology/tree/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/plugins/topology/tree/topology_tree.c b/src/plugins/topology/tree/topology_tree.c index 4a2ce9e26236dd60d810296376e7124723cf5b2e..9e69db529572c4a44be6ec8dea1f0d9c768d3682 100644 --- a/src/plugins/topology/tree/topology_tree.c +++ b/src/plugins/topology/tree/topology_tree.c @@ -99,6 +99,8 @@ static void _free_switch_record_table(void); static int _get_switch_inx(const char *name); static char *_get_topo_conf(void); static void _log_switches(void); +static int _node_name2bitmap(char *node_names, bitstr_t **bitmap, + hostlist_t *invalid_hostlist); static int _parse_switches(void **dest, slurm_parser_enum_t type, const char *key, const char *value, const char *line, char **leftover); @@ -218,7 +220,7 @@ static void _validate_switches(void) slurm_conf_switches_t *ptr, **ptr_array; int depth, i, j; struct switch_record *switch_ptr; - hostlist_t hl; + hostlist_t hl, invalid_hl = NULL; char *child; bitstr_t *multi_homed_bitmap = NULL; /* nodes on >1 leaf switch */ bitstr_t *switches_bitmap = NULL; /* nodes on any leaf switch */ @@ -244,8 +246,9 @@ static void _validate_switches(void) if (ptr->nodes) { switch_ptr->level = 0; /* leaf switch */ switch_ptr->nodes = xstrdup(ptr->nodes); - if (node_name2bitmap(ptr->nodes, true, - &switch_ptr->node_bitmap)) { + if (_node_name2bitmap(ptr->nodes, + &switch_ptr->node_bitmap, + &invalid_hl)) { fatal("Invalid node name (%s) in switch " "config (%s)", ptr->nodes, ptr->switch_name); @@ -336,6 +339,14 @@ static void _validate_switches(void) } else fatal("switches contain no nodes"); + if (invalid_hl) { + char buf[128]; + hostlist_ranged_string(invalid_hl, sizeof(buf), buf); + error("WARNING: Invalid hostnames in switch configuration: %s", + buf); + hostlist_destroy(invalid_hl); + } + /* Report nodes on multiple leaf switches, * possibly due to bad configuration file */ i = bit_set_count(multi_homed_bitmap); @@ -502,3 +513,60 @@ static void _destroy_switches(void *ptr) xfree(ptr); } +/* + * _node_name2bitmap - given a node name regular expression, build a bitmap + * representation, any invalid hostnames are added to a hostlist + * IN node_names - set of node namess + * OUT bitmap - set to bitmap, may not have all bits set on error + * IN/OUT invalid_hostlist - hostlist of invalid host names, initialize to NULL + * RET 0 if no error, otherwise EINVAL + * NOTE: call bit_free(bitmap) and hostlist_destroy(invalid_hostlist) + * to free memory when variables are no longer required + */ +static int _node_name2bitmap(char *node_names, bitstr_t **bitmap, + hostlist_t *invalid_hostlist) +{ + char *this_node_name; + bitstr_t *my_bitmap; + hostlist_t host_list; + + my_bitmap = (bitstr_t *) bit_alloc(node_record_count); + if (my_bitmap == NULL) + fatal("bit_alloc malloc failure"); + *bitmap = my_bitmap; + + if (node_names == NULL) { + error("_node_name2bitmap: node_names is NULL"); + return EINVAL; + } + + if ( (host_list = hostlist_create(node_names)) == NULL) { + /* likely a badly formatted hostlist */ + error("_node_name2bitmap: hostlist_create(%s) error", + node_names); + return EINVAL; + } + + while ( (this_node_name = hostlist_shift(host_list)) ) { + struct node_record *node_ptr; + node_ptr = find_node_record(this_node_name); + if (node_ptr) { + bit_set(my_bitmap, + (bitoff_t) (node_ptr - node_record_table_ptr)); + } else { + debug2("_node_name2bitmap: invalid node specified %s", + this_node_name); + if (*invalid_hostlist) { + hostlist_push_host(*invalid_hostlist, + this_node_name); + } else { + *invalid_hostlist = + hostlist_create(this_node_name); + } + } + free (this_node_name); + } + hostlist_destroy(host_list); + + return SLURM_SUCCESS; +} diff --git a/src/sacct/Makefile.in b/src/sacct/Makefile.in index d0307e5a9ae575bd269c0e10cf4a6fb30d64361d..9cd12847502192e14958658f64a66fa7e0edcd94 100644 --- a/src/sacct/Makefile.in +++ b/src/sacct/Makefile.in @@ -196,6 +196,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/sacct/print.c b/src/sacct/print.c index dcc76f1794ba7c58ed28951e1df6c43e7a92e6c7..baad19f00ed983fceabddf8be892adad8445d3af 100644 --- a/src/sacct/print.c +++ b/src/sacct/print.c @@ -208,7 +208,8 @@ void print_fields(type_t type, void *object) default: break; } - tmp_char = _elapsed_time((int)tmp_dub, 0); + if(tmp_dub != (double)NO_VAL) + tmp_char = _elapsed_time((long)tmp_dub, 0); field->print_routine(field, tmp_char, @@ -739,7 +740,8 @@ void print_fields(type_t type, void *object) default: break; } - tmp_char = _elapsed_time((int)tmp_dub, 0); + if(tmp_dub != (double)NO_VAL) + tmp_char = _elapsed_time((long)tmp_dub, 0); field->print_routine(field, tmp_char, (curr_inx == field_count)); diff --git a/src/sacct/sacct.c b/src/sacct/sacct.c index 0d4609ddcc93fa3d8de040d0f5c768d55e78b154..d234e0d9feccab8eb75470c6f0e3ef91cc2d5e9b 100644 --- a/src/sacct/sacct.c +++ b/src/sacct/sacct.c @@ -93,7 +93,7 @@ print_field_t fields[] = { {19, "Submit", print_fields_date, PRINT_SUBMIT}, {10, "Suspended", print_fields_time_from_secs, PRINT_SUSPENDED}, {10, "SystemCPU", print_fields_str, PRINT_SYSTEMCPU}, - {10, "Timelimit", print_fields_time_from_secs, PRINT_TIMELIMIT}, + {10, "Timelimit", print_fields_str, PRINT_TIMELIMIT}, {10, "TotalCPU", print_fields_str, PRINT_TOTALCPU}, {6, "UID", print_fields_int, PRINT_UID}, {9, "User", print_fields_str, PRINT_USER}, diff --git a/src/sacctmgr/Makefile.in b/src/sacctmgr/Makefile.in index e1b8745119204b52ae70dcab806c022fb6f1693f..963b36cc3d906a0c2e1ebabc00c799acc23e9088 100644 --- a/src/sacctmgr/Makefile.in +++ b/src/sacctmgr/Makefile.in @@ -200,6 +200,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/salloc/Makefile.in b/src/salloc/Makefile.in index d7a6166cf715e851cff64834f31b06233fe69a14..3a2c2ac4cf2461819cdb03f04d59739bf196b0e0 100644 --- a/src/salloc/Makefile.in +++ b/src/salloc/Makefile.in @@ -193,6 +193,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/sattach/Makefile.in b/src/sattach/Makefile.in index f77ccecef96ceb2456390e880632c76718104e9e..e9e5da120ad65d2be810c3a50c88559fc161703a 100644 --- a/src/sattach/Makefile.in +++ b/src/sattach/Makefile.in @@ -194,6 +194,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/sbatch/Makefile.in b/src/sbatch/Makefile.in index ed3cf82750f602541067ba3e71355e6a93451990..3ed97b4a442af4142a5f2a1e58bb1b0a9bcfa5ac 100644 --- a/src/sbatch/Makefile.in +++ b/src/sbatch/Makefile.in @@ -193,6 +193,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/sbcast/Makefile.in b/src/sbcast/Makefile.in index 35073649cb97c5e4413eb3e99a007dd881f3a152..20286941ebfc0f28f7c49e4e458737b2f7d1a6f2 100644 --- a/src/sbcast/Makefile.in +++ b/src/sbcast/Makefile.in @@ -196,6 +196,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/scancel/Makefile.in b/src/scancel/Makefile.in index 391fb291c158d867c77f7a891c2eac2e63607711..3abe606b23665e688087a6eb5b7d99ca0b220d4e 100644 --- a/src/scancel/Makefile.in +++ b/src/scancel/Makefile.in @@ -195,6 +195,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/scontrol/Makefile.in b/src/scontrol/Makefile.in index 54a41e9bf49bb07f98bb30fc4ef9054859c4bb89..c878d5a3b7db16afb7db2b994a636d6afb024488 100644 --- a/src/scontrol/Makefile.in +++ b/src/scontrol/Makefile.in @@ -197,6 +197,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/scontrol/update_job.c b/src/scontrol/update_job.c index 976647edfe35a706e8ee004734e228a68d627dda..8ded694c2d5a32d038c717396d2eb87f9708bc71 100644 --- a/src/scontrol/update_job.c +++ b/src/scontrol/update_job.c @@ -401,8 +401,7 @@ scontrol_update_job (int argc, char *argv[]) (uint32_t) strtol(val, (char **) NULL, 10); update_cnt++; } - else if (strncasecmp(tag, "PartitionName", - MAX(taglen, 2)) == 0) { + else if (strncasecmp(tag, "Partition", MAX(taglen, 2)) == 0) { job_msg.partition = val; update_cnt++; } diff --git a/src/sinfo/Makefile.in b/src/sinfo/Makefile.in index b8bb80468bfdb8e0abc049e136534530f1b6872a..3cfeb122281cdffc874df2187af669f17c04576f 100644 --- a/src/sinfo/Makefile.in +++ b/src/sinfo/Makefile.in @@ -197,6 +197,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/slurmctld/Makefile.in b/src/slurmctld/Makefile.in index 9316845807e3abe607cef44e35e4257b0693a56b..4e2763884c8421753a9ad74be1b4c361feb65535 100644 --- a/src/slurmctld/Makefile.in +++ b/src/slurmctld/Makefile.in @@ -203,6 +203,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/slurmctld/agent.c b/src/slurmctld/agent.c index f5f9f442f61c5743493a77674d7d328b5885c69e..678f71b78e6f466a6be16bf0efd21432b8b1a860 100644 --- a/src/slurmctld/agent.c +++ b/src/slurmctld/agent.c @@ -96,7 +96,7 @@ #include "src/slurmctld/state_save.h" #include "src/slurmctld/srun_comm.h" -#define MAX_RETRIES 100 +#define MAX_RETRIES 100 typedef enum { DSH_NEW, /* Request not yet started */ @@ -197,7 +197,9 @@ static pthread_mutex_t agent_cnt_mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_cond_t agent_cnt_cond = PTHREAD_COND_INITIALIZER; static int agent_cnt = 0; -static bool run_scheduler = false; +static bool run_scheduler = false; +static bool wiki2_sched = false; +static bool wiki2_sched_test = false; /* * agent - party responsible for transmitting an common RPC in parallel @@ -223,6 +225,14 @@ void *agent(void *args) agent_cnt, MAX_AGENT_CNT, agent_arg_ptr->msg_type); #endif slurm_mutex_lock(&agent_cnt_mutex); + if (!wiki2_sched_test) { + char *sched_type = slurm_get_sched_type(); + if (strcmp(sched_type, "sched/wiki2") == 0) + wiki2_sched = true; + xfree(sched_type); + wiki2_sched_test = true; + } + while (1) { if (slurmctld_config.shutdown_time || (agent_cnt < MAX_AGENT_CNT)) { @@ -1495,6 +1505,7 @@ static int _batch_launch_defer(queued_request_t *queued_req_ptr) struct node_record *node_ptr; time_t now = time(NULL); struct job_record *job_ptr; + int delay_time; agent_arg_ptr = queued_req_ptr->agent_arg_ptr; if (agent_arg_ptr->msg_type != REQUEST_BATCH_JOB_LAUNCH) @@ -1525,10 +1536,16 @@ static int _batch_launch_defer(queued_request_t *queued_req_ptr) return -1; /* invalid request?? */ } + delay_time = difftime(now, job_ptr->start_time); if (!IS_NODE_POWER_SAVE(node_ptr) && !IS_NODE_NO_RESPOND(node_ptr)) { /* ready to launch, adjust time limit for boot time */ - if (job_ptr->time_limit != INFINITE) - job_ptr->end_time = now + (job_ptr->time_limit * 60); + if (delay_time && (job_ptr->time_limit != INFINITE) && + (!wiki2_sched)) { + info("Job %u launch delayed by %d secs, " + "updating end_time", + launch_msg_ptr->job_id, delay_time); + job_ptr->end_time += delay_time; + } queued_req_ptr->last_attempt = (time_t) 0; return 0; } @@ -1541,8 +1558,13 @@ static int _batch_launch_defer(queued_request_t *queued_req_ptr) error("agent waited too long for node %s to respond, " "sending batch request anyway...", node_ptr->name); - if (job_ptr->time_limit != INFINITE) - job_ptr->end_time = now + (job_ptr->time_limit * 60); + if (delay_time && (job_ptr->time_limit != INFINITE) && + (!wiki2_sched)) { + info("Job %u launch delayed by %d secs, " + "updating end_time", + launch_msg_ptr->job_id, delay_time); + job_ptr->end_time += delay_time; + } queued_req_ptr->last_attempt = (time_t) 0; return 0; } diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index 5109b9a9215a13c9ed2aa84479d087e74e38e840..45ac1c8264b01179be66a8fb472f6cc690803288 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -109,6 +109,7 @@ static int job_count = 0; /* job's in the system */ static uint32_t job_id_sequence = 0; /* first job_id to assign new job */ static struct job_record **job_hash = NULL; static bool wiki_sched = false; +static bool wiki2_sched = false; static bool wiki_sched_test = false; /* Local functions */ @@ -2092,17 +2093,19 @@ extern int job_signal(uint32_t job_id, uint16_t signal, uint16_t batch_flag, struct job_record *job_ptr; time_t now = time(NULL); bool super_user; - static bool wiki2_sched = false; - static bool wiki2_sched_test = false; /* Jobs submitted using Moab command should be cancelled using * Moab command for accurate job records */ - if (!wiki2_sched_test) { + if (!wiki_sched_test) { char *sched_type = slurm_get_sched_type(); - if (strcmp(sched_type, "sched/wiki2") == 0) + if (strcmp(sched_type, "sched/wiki") == 0) + wiki_sched = true; + if (strcmp(sched_type, "sched/wiki2") == 0) { + wiki_sched = true; wiki2_sched = true; + } xfree(sched_type); - wiki2_sched_test = true; + wiki_sched_test = true; } job_ptr = find_job_record(job_id); @@ -3304,11 +3307,11 @@ _set_multi_core_data(job_desc_msg_t * job_desc) mc_ptr->min_threads = job_desc->min_threads; else mc_ptr->min_threads = 1; - if (mc_ptr->ntasks_per_socket != (uint16_t) NO_VAL) + if (job_desc->ntasks_per_socket != (uint16_t) NO_VAL) mc_ptr->ntasks_per_socket = job_desc->ntasks_per_socket; else mc_ptr->ntasks_per_socket = 0; - if (mc_ptr->ntasks_per_core != (uint16_t) NO_VAL) + if (job_desc->ntasks_per_core != (uint16_t) NO_VAL) mc_ptr->ntasks_per_core = job_desc->ntasks_per_core; else mc_ptr->ntasks_per_core = 0; @@ -3412,9 +3415,12 @@ _copy_job_desc_to_job_record(job_desc_msg_t * job_desc, job_ptr->comment = xstrdup(job_desc->comment); if (!wiki_sched_test) { char *sched_type = slurm_get_sched_type(); - if ((strcmp(sched_type, "sched/wiki") == 0) || - (strcmp(sched_type, "sched/wiki2") == 0)) - wiki_sched = true; + if (strcmp(sched_type, "sched/wiki") == 0) + wiki_sched = true; + if (strcmp(sched_type, "sched/wiki2") == 0) { + wiki_sched = true; + wiki2_sched = true; + } xfree(sched_type); wiki_sched_test = true; } @@ -4789,6 +4795,11 @@ static bool _top_priority(struct job_record *job_ptr) continue; if (!IS_JOB_PENDING(job_ptr2)) continue; + if (IS_JOB_COMPLETING(job_ptr2)) { + /* Job is hung in pending & completing state, + * indicative of job requeue */ + continue; + } if (!job_independent(job_ptr2, 0)) continue; if ((job_ptr2->resv_name && (!job_ptr->resv_name)) || @@ -4890,9 +4901,12 @@ int update_job(job_desc_msg_t * job_specs, uid_t uid) if (!wiki_sched_test) { char *sched_type = slurm_get_sched_type(); - if ((strcmp(sched_type, "sched/wiki") == 0) || - (strcmp(sched_type, "sched/wiki2") == 0)) - wiki_sched = true; + if (strcmp(sched_type, "sched/wiki") == 0) + wiki_sched = true; + if (strcmp(sched_type, "sched/wiki2") == 0) { + wiki_sched = true; + wiki2_sched = true; + } xfree(sched_type); wiki_sched_test = true; } @@ -6762,8 +6776,20 @@ extern int job_suspend(suspend_msg_t *sus_ptr, uid_t uid, _set_job_prio(job_ptr); job_ptr->tot_sus_time += difftime(now, job_ptr->suspend_time); - if (job_ptr->time_limit != INFINITE) { - /* adjust effective time_limit */ + if (!wiki_sched_test) { + char *sched_type = slurm_get_sched_type(); + if (strcmp(sched_type, "sched/wiki") == 0) + wiki_sched = true; + if (strcmp(sched_type, "sched/wiki2") == 0) { + wiki_sched = true; + wiki2_sched = true; + } + xfree(sched_type); + wiki_sched_test = true; + } + if ((job_ptr->time_limit != INFINITE) && (!wiki2_sched)) { + info("Job %u resumed, updating end_time", + job_ptr->job_id); job_ptr->end_time = now + (job_ptr->time_limit * 60) - job_ptr->pre_sus_time; @@ -8016,6 +8042,7 @@ extern int job_restart(checkpoint_msg_t *ckpt_ptr, uid_t uid, slurm_fd conn_fd) unpack_error: free_buf(buffer); + xfree(ver_str); xfree(image_dir); xfree(alloc_nodes); xfree(ckpt_file); diff --git a/src/slurmctld/node_mgr.c b/src/slurmctld/node_mgr.c index 935ee1be726d33dd9e93e1967503459115580576..1531e783acf9d75e4a763700a8abe8131a7cb0e5 100644 --- a/src/slurmctld/node_mgr.c +++ b/src/slurmctld/node_mgr.c @@ -866,6 +866,7 @@ extern void restore_node_features(void) int i, j; char *node_list; struct node_record *node_ptr1, *node_ptr2; + hostlist_t hl; for (i=0, node_ptr1=node_record_table_ptr; i<node_record_count; i++, node_ptr1++) { @@ -878,20 +879,23 @@ extern void restore_node_features(void) continue; /* Identical feature value */ } - node_list = xstrdup(node_ptr1->name); + hl = hostlist_create(node_ptr1->name); for (j=(i+1), node_ptr2=(node_ptr1+1); j<node_record_count; j++, node_ptr2++) { if (!node_ptr2->features || strcmp(node_ptr1->features, node_ptr2->features)) continue; - xstrcat(node_list, ","); - xstrcat(node_list, node_ptr2->name); + hostlist_push(hl, node_ptr2->name); } + + node_list = xmalloc(2048); + hostlist_ranged_string(hl, 2048, node_list); error("Node %s Features(%s) differ from slurm.conf", node_list, node_ptr1->features); _update_node_features(node_list, node_ptr1->features); xfree(node_ptr1->features); xfree(node_list); + hostlist_destroy(hl); } } diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c index ae88d51eef18a64a72d6508046f03f9db7c81df6..cfa3db85caa10d242c31f5f6555fbff4033eb820 100644 --- a/src/slurmctld/node_scheduler.c +++ b/src/slurmctld/node_scheduler.c @@ -269,8 +269,6 @@ static int _match_feature(char *seek, struct node_set *node_set_ptr) * IN part_max_share - current partition's node sharing policy * IN cons_res_flag - 1 if the consumable resources flag is enable, 0 otherwise * - * RET - 1 if nodes can be shared, 0 if nodes cannot be shared - * * * The followed table details the node SHARED state for the various scenarios * @@ -312,6 +310,7 @@ _resolve_shared_status(uint16_t user_flag, uint16_t part_max_share, /* no sharing if part=EXCLUSIVE */ if (part_max_share == 0) return 0; + /* sharing if part=FORCE with count > 1 */ if ((part_max_share & SHARED_FORCE) && ((part_max_share & (~SHARED_FORCE)) > 1)) @@ -1190,8 +1189,12 @@ extern int select_nodes(struct job_record *job_ptr, bool test_only, * is for the job when we place it */ job_ptr->start_time = job_ptr->time_last_active = now; - if (job_ptr->time_limit == NO_VAL) - job_ptr->time_limit = part_ptr->max_time; + if (job_ptr->time_limit == NO_VAL) { + if (part_ptr->default_time != NO_VAL) + job_ptr->time_limit = part_ptr->default_time; + else + job_ptr->time_limit = part_ptr->max_time; + } if (job_ptr->time_limit == INFINITE) job_ptr->end_time = job_ptr->start_time + (365 * 24 * 60 * 60); /* secs in year */ diff --git a/src/slurmctld/step_mgr.c b/src/slurmctld/step_mgr.c index 88945bf8d5c2e0ceb81b399d50cd98a6f894b090..aeed83aba96aea3f1db87524a98c66ebe9f8539f 100644 --- a/src/slurmctld/step_mgr.c +++ b/src/slurmctld/step_mgr.c @@ -1392,10 +1392,7 @@ step_create(job_step_create_request_msg_t *step_specs, * time limits may cut it short */ if (step_specs->time_limit == NO_VAL || step_specs->time_limit == 0 || step_specs->time_limit == INFINITE) { - if (job_ptr->part_ptr->default_time != NO_VAL) - step_ptr->time_limit = job_ptr->part_ptr->default_time; - else - step_ptr->time_limit = job_ptr->part_ptr->max_time; + step_ptr->time_limit = INFINITE; } else { /* enforce partition limits if necessary */ if ((step_specs->time_limit > job_ptr->part_ptr->max_time) && diff --git a/src/slurmctld/trigger_mgr.c b/src/slurmctld/trigger_mgr.c index 4af08d228023a794a105b9a429dc44c303fcf358..d93cdfdf4ab3df083b9b7332ce89354b19c1c02b 100644 --- a/src/slurmctld/trigger_mgr.c +++ b/src/slurmctld/trigger_mgr.c @@ -2,7 +2,7 @@ * trigger_mgr.c - Event trigger management ***************************************************************************** * Copyright (C) 2007 The Regents of the University of California. - * Copyright (C) 2008-2009 Lawrence Livermore National Security. + * Copyright (C) 2008-2010 Lawrence Livermore National Security. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Morris Jette <jette1@llnl.gov> et. al. * CODE-OCEC-09-009. All rights reserved. @@ -227,17 +227,15 @@ extern int trigger_clear(uid_t uid, trigger_info_msg_t *msg) /* now look for a valid request, matching uid */ trig_iter = list_iterator_create(trigger_list); while ((trig_test = list_next(trig_iter))) { - if ((trig_test->user_id != (uint32_t) uid) - && (uid != 0)) + if ((trig_test->user_id != (uint32_t) uid) && (uid != 0)) continue; - if (trig_in->trig_id - && (trig_in->trig_id != trig_test->trig_id)) + if (trig_in->trig_id && + (trig_in->trig_id != trig_test->trig_id)) continue; - if (job_id - && (job_id != trig_test->job_id)) + if (job_id && (job_id != trig_test->job_id)) continue; - if (trig_in->user_id - && (trig_in->user_id != trig_test->user_id)) + if (trig_in->user_id && + (trig_in->user_id != trig_test->user_id)) continue; if (trig_test->state == 2) /* wait for proc termination */ continue; @@ -307,8 +305,8 @@ extern int trigger_set(uid_t uid, gid_t gid, trigger_info_msg_t *msg) lock_slurmctld(job_read_lock); slurm_mutex_lock(&trigger_mutex); - if ((slurmctld_conf.slurm_user_id != 0) - && (slurmctld_conf.slurm_user_id != uid)) { + if ((slurmctld_conf.slurm_user_id != 0) && + (slurmctld_conf.slurm_user_id != uid)) { /* If SlurmUser is not root, then it is unable to set the * appropriate user id and group id for the program to be * launched. To prevent the launched program for an arbitrary @@ -345,10 +343,10 @@ extern int trigger_set(uid_t uid, gid_t gid, trigger_info_msg_t *msg) } else { job_id = 0; job_ptr = NULL; - if ((msg->trigger_array[i].res_id != NULL) - && (msg->trigger_array[i].res_id[0] != '*') - && (node_name2bitmap(msg->trigger_array[i].res_id, - false, &bitmap) != 0)) { + if ((msg->trigger_array[i].res_id != NULL) && + (msg->trigger_array[i].res_id[0] != '*') && + (node_name2bitmap(msg->trigger_array[i].res_id, + false, &bitmap) != 0)) { rc = ESLURM_INVALID_NODE_NAME; continue; } @@ -480,9 +478,9 @@ static int _load_trigger_state(Buf buffer) safe_unpack32 (&trig_ptr->group_id, buffer); safe_unpackstr_xmalloc(&trig_ptr->program, &str_len, buffer); safe_unpack8 (&trig_ptr->state, buffer); - if ((trig_ptr->res_type < TRIGGER_RES_TYPE_JOB) - || (trig_ptr->res_type > TRIGGER_RES_TYPE_NODE) - || (trig_ptr->state > 2)) + if ((trig_ptr->res_type < TRIGGER_RES_TYPE_JOB) || + (trig_ptr->res_type > TRIGGER_RES_TYPE_NODE) || + (trig_ptr->state > 2)) goto unpack_error; if (trig_ptr->res_type == TRIGGER_RES_TYPE_JOB) { trig_ptr->job_id = (uint32_t) atol(trig_ptr->res_id); @@ -679,7 +677,8 @@ extern int trigger_state_restore(void) buffer = create_buf(data, data_size); safe_unpackstr_xmalloc(&ver_str, &ver_str_len, buffer); if (strcmp(ver_str, TRIGGER_STATE_VERSION) != 0) { - error("Can't recover trigger state, data version incompatible"); + error("Can't recover trigger state, data version " + "incompatible"); xfree(ver_str); free_buf(buffer); return EFAULT; @@ -706,12 +705,12 @@ fini: verbose("State of %d triggers recovered", trigger_cnt); /* Test if the event has been triggered, change trigger state as needed */ static void _trigger_job_event(trig_mgr_info_t *trig_in, time_t now) { - if ((trig_in->job_ptr == NULL) - || (trig_in->job_ptr->job_id != trig_in->job_id)) + if ((trig_in->job_ptr == NULL) || + (trig_in->job_ptr->job_id != trig_in->job_id)) trig_in->job_ptr = find_job_record(trig_in->job_ptr->job_id); - if ((trig_in->trig_type & TRIGGER_TYPE_FINI) - && ((trig_in->job_ptr == NULL) || + if ((trig_in->trig_type & TRIGGER_TYPE_FINI) && + ((trig_in->job_ptr == NULL) || (IS_JOB_COMPLETED(trig_in->job_ptr)))) { trig_in->state = 1; trig_in->trig_time = now + (trig_in->trig_time - 0x8000); @@ -732,7 +731,8 @@ static void _trigger_job_event(trig_mgr_info_t *trig_in, time_t now) return; } - if (trig_in->trig_type & TRIGGER_TYPE_TIME) { + if (!IS_JOB_PENDING(trig_in->job_ptr) && + (trig_in->trig_type & TRIGGER_TYPE_TIME)) { long rem_time = (trig_in->job_ptr->end_time - now); if (rem_time <= (0x8000 - trig_in->trig_time)) { trig_in->state = 1; @@ -746,8 +746,8 @@ static void _trigger_job_event(trig_mgr_info_t *trig_in, time_t now) } if (trig_in->trig_type & TRIGGER_TYPE_DOWN) { - if (trigger_down_nodes_bitmap - && bit_overlap(trig_in->job_ptr->node_bitmap, + if (trigger_down_nodes_bitmap && + bit_overlap(trig_in->job_ptr->node_bitmap, trigger_down_nodes_bitmap)) { if (slurm_get_debug_flags() & DEBUG_FLAG_TRIGGERS) { info("trigger[%u] for job %u down", @@ -761,8 +761,8 @@ static void _trigger_job_event(trig_mgr_info_t *trig_in, time_t now) } if (trig_in->trig_type & TRIGGER_TYPE_FAIL) { - if (trigger_fail_nodes_bitmap - && bit_overlap(trig_in->job_ptr->node_bitmap, + if (trigger_fail_nodes_bitmap && + bit_overlap(trig_in->job_ptr->node_bitmap, trigger_fail_nodes_bitmap)) { if (slurm_get_debug_flags() & DEBUG_FLAG_TRIGGERS) { info("trigger[%u] for job %u node fail", @@ -776,8 +776,8 @@ static void _trigger_job_event(trig_mgr_info_t *trig_in, time_t now) } if (trig_in->trig_type & TRIGGER_TYPE_UP) { - if (trigger_up_nodes_bitmap - && bit_overlap(trig_in->job_ptr->node_bitmap, + if (trigger_up_nodes_bitmap && + bit_overlap(trig_in->job_ptr->node_bitmap, trigger_up_nodes_bitmap)) { trig_in->state = 1; trig_in->trig_time = now + @@ -793,8 +793,8 @@ static void _trigger_job_event(trig_mgr_info_t *trig_in, time_t now) static void _trigger_node_event(trig_mgr_info_t *trig_in, time_t now) { - if ((trig_in->trig_type & TRIGGER_TYPE_BLOCK_ERR) - && trigger_block_err) { + if ((trig_in->trig_type & TRIGGER_TYPE_BLOCK_ERR) && + trigger_block_err) { trig_in->state = 1; trig_in->trig_time = now + (trig_in->trig_time - 0x8000); if (slurm_get_debug_flags() & DEBUG_FLAG_TRIGGERS) @@ -802,9 +802,9 @@ static void _trigger_node_event(trig_mgr_info_t *trig_in, time_t now) return; } - if ((trig_in->trig_type & TRIGGER_TYPE_DOWN) - && trigger_down_nodes_bitmap - && (bit_ffs(trigger_down_nodes_bitmap) != -1)) { + if ((trig_in->trig_type & TRIGGER_TYPE_DOWN) && + trigger_down_nodes_bitmap && + (bit_ffs(trigger_down_nodes_bitmap) != -1)) { if (trig_in->nodes_bitmap == NULL) { /* all nodes */ xfree(trig_in->res_id); trig_in->res_id = bitmap2node_name( @@ -830,9 +830,9 @@ static void _trigger_node_event(trig_mgr_info_t *trig_in, time_t now) } } - if ((trig_in->trig_type & TRIGGER_TYPE_DRAINED) - && trigger_drained_nodes_bitmap - && (bit_ffs(trigger_drained_nodes_bitmap) != -1)) { + if ((trig_in->trig_type & TRIGGER_TYPE_DRAINED) && + trigger_drained_nodes_bitmap && + (bit_ffs(trigger_drained_nodes_bitmap) != -1)) { if (trig_in->nodes_bitmap == NULL) { /* all nodes */ xfree(trig_in->res_id); trig_in->res_id = bitmap2node_name( @@ -858,9 +858,9 @@ static void _trigger_node_event(trig_mgr_info_t *trig_in, time_t now) } } - if ((trig_in->trig_type & TRIGGER_TYPE_FAIL) - && trigger_fail_nodes_bitmap - && (bit_ffs(trigger_fail_nodes_bitmap) != -1)) { + if ((trig_in->trig_type & TRIGGER_TYPE_FAIL) && + trigger_fail_nodes_bitmap && + (bit_ffs(trigger_fail_nodes_bitmap) != -1)) { if (trig_in->nodes_bitmap == NULL) { /* all nodes */ xfree(trig_in->res_id); trig_in->res_id = bitmap2node_name( @@ -926,9 +926,9 @@ static void _trigger_node_event(trig_mgr_info_t *trig_in, time_t now) } } - if ((trig_in->trig_type & TRIGGER_TYPE_UP) - && trigger_up_nodes_bitmap - && (bit_ffs(trigger_up_nodes_bitmap) != -1)) { + if ((trig_in->trig_type & TRIGGER_TYPE_UP) && + trigger_up_nodes_bitmap && + (bit_ffs(trigger_up_nodes_bitmap) != -1)) { if (trig_in->nodes_bitmap == NULL) { /* all nodes */ xfree(trig_in->res_id); trig_in->res_id = bitmap2node_name( @@ -954,8 +954,8 @@ static void _trigger_node_event(trig_mgr_info_t *trig_in, time_t now) } } - if ((trig_in->trig_type & TRIGGER_TYPE_RECONFIG) - && trigger_node_reconfig) { + if ((trig_in->trig_type & TRIGGER_TYPE_RECONFIG) && + trigger_node_reconfig) { trig_in->state = 1; trig_in->trig_time = now + (trig_in->trig_time - 0x8000); xfree(trig_in->res_id); @@ -1123,7 +1123,8 @@ extern void trigger_process(void) trig_in->user_id, _res_type(trig_in->res_type), _trig_type(trig_in->trig_type), - WIFEXITED(prog_stat), WTERMSIG(prog_stat)); + WIFEXITED(prog_stat), + WTERMSIG(prog_stat)); } if ((rc == trig_in->group_id) || ((rc == -1) && (errno == ECHILD))) diff --git a/src/slurmd/Makefile.in b/src/slurmd/Makefile.in index 667f8b7c9afdd4a300523625c723613c0be080fd..fc19abc6ad475e50b3ab25b42a372b1464fe22e3 100644 --- a/src/slurmd/Makefile.in +++ b/src/slurmd/Makefile.in @@ -205,6 +205,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/slurmd/slurmd/Makefile.in b/src/slurmd/slurmd/Makefile.in index cd8bbeb95980b3f7955c19cfc3dc637c84d17e0b..9ad837a25b4d0f0ddd1a276e95f27317593c6cda 100644 --- a/src/slurmd/slurmd/Makefile.in +++ b/src/slurmd/slurmd/Makefile.in @@ -200,6 +200,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/slurmd/slurmd/slurmd.c b/src/slurmd/slurmd/slurmd.c index 038a79e13d2991075ef8955f413034a8b92ad816..7b187a3e38b24e338f63c0019fdb3ae5967a8e03 100644 --- a/src/slurmd/slurmd/slurmd.c +++ b/src/slurmd/slurmd/slurmd.c @@ -1,6 +1,6 @@ /*****************************************************************************\ * src/slurmd/slurmd/slurmd.c - main slurm node server daemon - * $Id: slurmd.c 19191 2009-12-30 18:04:13Z da $ + * $Id: slurmd.c 19424 2010-02-05 16:32:13Z jette $ ***************************************************************************** * Copyright (C) 2002-2007 The Regents of the University of California. * Copyright (C) 2008-2009 Lawrence Livermore National Security. @@ -741,20 +741,6 @@ _read_config(void) &conf->block_map_size, &conf->block_map, &conf->block_map_inv); - if(cf->fast_schedule && - ((conf->conf_cpus != conf->actual_cpus) || - (conf->sockets != conf->actual_sockets) || - (conf->cores != conf->actual_cores) || - (conf->threads != conf->actual_threads))) { - info("Node configuration differs from hardware\n" - " Procs=%u:%u(hw) Sockets=%u:%u(hw)\n" - " CoresPerSocket=%u:%u(hw) ThreadsPerCore=%u:%u(hw)", - conf->conf_cpus, conf->actual_cpus, - conf->conf_sockets, conf->actual_sockets, - conf->conf_cores, conf->actual_cores, - conf->conf_threads, conf->actual_threads); - } - if((cf->fast_schedule == 0) || (conf->actual_cpus < conf->conf_cpus)) { conf->cpus = conf->actual_cpus; conf->sockets = conf->actual_sockets; @@ -766,6 +752,21 @@ _read_config(void) conf->cores = conf->conf_cores; conf->threads = conf->conf_threads; } + + if(cf->fast_schedule && + ((conf->cpus != conf->actual_cpus) || + (conf->sockets != conf->actual_sockets) || + (conf->cores != conf->actual_cores) || + (conf->threads != conf->actual_threads))) { + info("Node configuration differs from hardware\n" + " Procs=%u:%u(hw) Sockets=%u:%u(hw)\n" + " CoresPerSocket=%u:%u(hw) ThreadsPerCore=%u:%u(hw)", + conf->cpus, conf->actual_cpus, + conf->sockets, conf->actual_sockets, + conf->cores, conf->actual_cores, + conf->threads, conf->actual_threads); + } + get_memory(&conf->real_memory_size); get_up_time(&conf->up_time); diff --git a/src/slurmd/slurmstepd/Makefile.in b/src/slurmd/slurmstepd/Makefile.in index 2569e5bd2da7cf7a43f85dfdd1d72684fdc8c189..3ae2ff204ad763124fda04ec59d82bba4c2b930f 100644 --- a/src/slurmd/slurmstepd/Makefile.in +++ b/src/slurmd/slurmstepd/Makefile.in @@ -203,6 +203,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/slurmd/slurmstepd/io.c b/src/slurmd/slurmstepd/io.c index 351cfb4916b3cd5d684df58402285068990928f0..47b7182472a293869b15bf684737ab4a42ea3618 100644 --- a/src/slurmd/slurmstepd/io.c +++ b/src/slurmd/slurmstepd/io.c @@ -1,37 +1,37 @@ /*****************************************************************************\ * src/slurmd/slurmstepd/io.c - Standard I/O handling routines for slurmstepd - * $Id: io.c 18467 2009-08-20 21:34:27Z dbremer $ + * $Id: io.c 19428 2010-02-05 18:27:09Z da $ ***************************************************************************** * Copyright (C) 2002 The Regents of the University of California. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Mark Grondona <mgrondona@llnl.gov>. * CODE-OCEC-09-009. All rights reserved. - * + * * This file is part of SLURM, a resource management program. * For details, see <https://computing.llnl.gov/linux/slurm/>. * Please also read the included file: DISCLAIMER. - * + * * SLURM is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * - * In addition, as a special exception, the copyright holders give permission - * to link the code of portions of this program with the OpenSSL library under - * certain conditions as described in each individual source file, and - * distribute linked combinations including the two. You must obey the GNU - * General Public License in all respects for all of the code used other than - * OpenSSL. If you modify file(s) with this exception, you may extend this - * exception to your version of the file(s), but you are not obligated to do + * In addition, as a special exception, the copyright holders give permission + * to link the code of portions of this program with the OpenSSL library under + * certain conditions as described in each individual source file, and + * distribute linked combinations including the two. You must obey the GNU + * General Public License in all respects for all of the code used other than + * OpenSSL. If you modify file(s) with this exception, you may extend this + * exception to your version of the file(s), but you are not obligated to do * so. If you do not wish to do so, delete this exception statement from your - * version. If you delete this exception statement from all source files in + * version. If you delete this exception statement from all source files in * the program, then also delete it here. - * + * * SLURM is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. - * + * * You should have received a copy of the GNU General Public License along * with SLURM; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. @@ -96,7 +96,7 @@ static int _client_read(eio_obj_t *, List); static int _client_write(eio_obj_t *, List); struct io_operations client_ops = { - readable: &_client_readable, + readable: &_client_readable, writable: &_client_writable, handle_read: &_client_read, handle_write: &_client_write, @@ -173,7 +173,7 @@ static bool _task_readable(eio_obj_t *); static int _task_read(eio_obj_t *, List); struct io_operations task_read_ops = { - readable: &_task_readable, + readable: &_task_readable, handle_read: &_task_read, }; @@ -225,7 +225,7 @@ static struct io_buf *_build_connection_okay_message(slurmd_job_t *job); /********************************************************************** * IO client socket functions **********************************************************************/ -static bool +static bool _client_readable(eio_obj_t *obj) { struct client_io_info *client = (struct client_io_info *) obj->arg; @@ -259,7 +259,7 @@ _client_readable(eio_obj_t *obj) return false; } -static bool +static bool _client_writable(eio_obj_t *obj) { struct client_io_info *client = (struct client_io_info *) obj->arg; @@ -307,7 +307,7 @@ _client_writable(eio_obj_t *obj) return false; } -static int +static int _client_read(eio_obj_t *obj, List objs) { struct client_io_info *client = (struct client_io_info *) obj->arg; @@ -355,11 +355,11 @@ _client_read(eio_obj_t *obj, List objs) return SLURM_ERROR; } if (_send_connection_okay_response(client->job)) { - /* - * If we get here because of a failed + /* + * If we get here because of a failed * _send_connection_okay_response, it's because of a - * lack of buffer space in the output queue. Just - * keep the current input message client->in_msg in + * lack of buffer space in the output queue. Just + * keep the current input message client->in_msg in * place, and resend on the next call. */ return SLURM_SUCCESS; @@ -370,7 +370,7 @@ _client_read(eio_obj_t *obj, List objs) } else if (client->header.length == 0) { /* zero length is an eof message */ debug5(" got stdin eof message!"); } else { - buf = client->in_msg->data + + buf = client->in_msg->data + (client->in_msg->length - client->in_remaining); again: if ((n = read(obj->fd, buf, client->in_remaining)) < 0) { @@ -462,17 +462,17 @@ _client_write(eio_obj_t *obj, List objs) debug5("_client_write: nothing in the queue"); return SLURM_SUCCESS; } - debug5(" dequeue successful, client->out_msg->length = %d", + debug5(" dequeue successful, client->out_msg->length = %d", client->out_msg->length); client->out_remaining = client->out_msg->length; } - debug5(" client->out_remaining = %d", client->out_remaining); + debug5(" client->out_remaining = %d", client->out_remaining); /* * Write message to socket. */ - buf = client->out_msg->data + + buf = client->out_msg->data + (client->out_msg->length - client->out_remaining); again: if ((n = write(obj->fd, buf, client->out_remaining)) < 0) { @@ -499,7 +499,7 @@ again: } -static bool +static bool _local_file_writable(eio_obj_t *obj) { struct client_io_info *client = (struct client_io_info *) obj->arg; @@ -538,13 +538,13 @@ _local_file_write(eio_obj_t *obj, List objs) if (client->out_msg == NULL) { return SLURM_SUCCESS; } - client->out_remaining = client->out_msg->length - + client->out_remaining = client->out_msg->length - io_hdr_packed_size(); } /* This code to make a buffer, fill it, unpack its contents, and free it is just used to read the header to get the global task id. */ - header_tmp_buf = create_buf(client->out_msg->data, + header_tmp_buf = create_buf(client->out_msg->data, client->out_msg->length); if (!header_tmp_buf) fatal("Failure to allocate memory for a message header"); @@ -561,11 +561,11 @@ _local_file_write(eio_obj_t *obj, List objs) } /* Write the message to the file. */ - buf = client->out_msg->data + + buf = client->out_msg->data + (client->out_msg->length - client->out_remaining); - n = write_labelled_message(obj->fd, buf, client->out_remaining, - header.gtaskid, client->labelio, + n = write_labelled_message(obj->fd, buf, client->out_remaining, + header.gtaskid, client->labelio, client->label_width); if (n < 0) { client->out_eof = true; @@ -610,7 +610,7 @@ _create_task_in_eio(int fd, slurmd_job_t *job) return eio; } -static bool +static bool _task_writable(eio_obj_t *obj) { struct task_write_info *t = (struct task_write_info *) obj->arg; @@ -732,7 +732,7 @@ _create_task_out_eio(int fd, uint16_t type, return eio; } -static bool +static bool _task_readable(eio_obj_t *obj) { struct task_read_info *out = (struct task_read_info *)obj->arg; @@ -801,7 +801,7 @@ again: if (cbuf_used(out->buf) == 0 && out->eof && !out->eof_msg_sent) { _send_eof_msg(out); } - + return SLURM_SUCCESS; } @@ -851,7 +851,7 @@ static void *_window_manager(void *arg) if (kill(win_info->task->pid, SIGWINCH)) { if (errno == ESRCH) break; - error("kill(%d, SIGWINCH): %m", + error("kill(%d, SIGWINCH): %m", (int)win_info->task->pid); } } @@ -993,7 +993,7 @@ _init_task_stdio_fds(slurmd_task_info_t *task, slurmd_job_t *job) task->in = _create_task_in_eio(task->to_stdin, job); eio_new_initial_obj(job->eio, (void *)task->in); } - + /* * Initialize stdout */ @@ -1016,10 +1016,10 @@ _init_task_stdio_fds(slurmd_task_info_t *task, slurmd_job_t *job) fd_set_close_on_exec(task->stdout_fd); task->from_stdout = -1; /* not used */ } - } else if (task->ofname != NULL && + } else if (task->ofname != NULL && (!job->labelio || strcmp(task->ofname, "/dev/null")==0)) { #else - if (task->ofname != NULL && + if (task->ofname != NULL && (!job->labelio || strcmp(task->ofname, "/dev/null")==0) ) { #endif /* open file on task's stdout */ @@ -1058,10 +1058,10 @@ _init_task_stdio_fds(slurmd_task_info_t *task, slurmd_job_t *job) if (job->pty) { if (task->gtid == 0) { /* Make a file descriptor for the task to write to, but - don't make a separate one read from, because in pty + don't make a separate one read from, because in pty mode we can't distinguish between stdout and stderr coming from the remote shell. Both streams from the - shell will go to task->stdout_fd, which is okay in + shell will go to task->stdout_fd, which is okay in pty mode because any output routed through the stepd will be displayed. */ task->stderr_fd = dup(task->stdin_fd); @@ -1074,10 +1074,10 @@ _init_task_stdio_fds(slurmd_task_info_t *task, slurmd_job_t *job) fd_set_close_on_exec(task->stderr_fd); task->from_stderr = -1; /* not used */ } - } else if (task->efname != NULL && + } else if (task->efname != NULL && (!job->labelio || strcmp(task->efname, "/dev/null")==0)) { #else - if (task->efname != NULL && + if (task->efname != NULL && (!job->labelio || strcmp(task->efname, "/dev/null")==0) ) { #endif /* open file on task's stdout */ @@ -1127,7 +1127,7 @@ io_init_tasks_stdio(slurmd_job_t *job) } int -io_thread_start(slurmd_job_t *job) +io_thread_start(slurmd_job_t *job) { pthread_attr_t attr; int rc = 0, retries = 0; @@ -1143,9 +1143,9 @@ io_thread_start(slurmd_job_t *job) } usleep(10); /* sleep and again */ } - + slurm_attr_destroy(&attr); - + /*fatal_add_cleanup(&_fatal_cleanup, (void *) job);*/ return rc; @@ -1237,7 +1237,7 @@ _build_connection_okay_message(slurmd_job_t *job) /* free the Buf packbuf, but not the memory to which it points */ packbuf->head = NULL; free_buf(packbuf); - + return msg; } @@ -1272,12 +1272,12 @@ _route_msg_task_to_client(eio_obj_t *obj) /* Some clients only take certain I/O streams */ if (out->type==SLURM_IO_STDOUT) { - if (client->ltaskid_stdout != -1 && + if (client->ltaskid_stdout != -1 && client->ltaskid_stdout != out->ltaskid) continue; } if (out->type==SLURM_IO_STDERR) { - if (client->ltaskid_stderr != -1 && + if (client->ltaskid_stderr != -1 && client->ltaskid_stderr != out->ltaskid) continue; } @@ -1367,7 +1367,7 @@ io_close_task_fds(slurmd_job_t *job) } } -void +void io_close_all(slurmd_job_t *job) { int devnull; @@ -1392,13 +1392,13 @@ io_close_all(slurmd_job_t *job) error("Unable to dup /dev/null onto stderr\n"); } - /* Signal IO thread to close appropriate + /* Signal IO thread to close appropriate * client connections */ eio_signal_shutdown(job->eio); } -void +void io_close_local_fds(slurmd_job_t *job) { ListIterator clients; @@ -1456,7 +1456,7 @@ _io_thr(void *arg) * modified in some way, like labelling lines with the task number. */ int -io_create_local_client(const char *filename, int file_flags, +io_create_local_client(const char *filename, int file_flags, slurmd_job_t *job, bool labelio, int stdout_tasks, int stderr_tasks) { @@ -1498,7 +1498,7 @@ io_create_local_client(const char *filename, int file_flags, return SLURM_SUCCESS; } -/* +/* * Create the initial TCP connection back to a waiting client (e.g. srun). * * Since this is the first client connection and the IO engine has not @@ -1509,7 +1509,7 @@ io_create_local_client(const char *filename, int file_flags, * an IO stream. */ int -io_initial_client_connect(srun_info_t *srun, slurmd_job_t *job, +io_initial_client_connect(srun_info_t *srun, slurmd_job_t *job, int stdout_tasks, int stderr_tasks) { int sock = -1; @@ -1527,11 +1527,11 @@ io_initial_client_connect(srun_info_t *srun, slurmd_job_t *job, return SLURM_SUCCESS; } debug4("connecting IO back to %s:%d", ip, ntohs(port)); - } + } if ((sock = (int) slurm_open_stream(&srun->ioaddr)) < 0) { error("connect io: %m"); - /* XXX retry or silently fail? + /* XXX retry or silently fail? * fail for now. */ return SLURM_ERROR; @@ -1567,7 +1567,7 @@ io_initial_client_connect(srun_info_t *srun, slurmd_job_t *job, return SLURM_SUCCESS; } -/* +/* * Initiate a TCP connection back to a waiting client (e.g. srun). * * Create a new eio client object and wake up the eio engine so that @@ -1587,11 +1587,11 @@ io_client_connect(srun_info_t *srun, slurmd_job_t *job) uint16_t port; slurm_get_ip_str(&srun->ioaddr, &port, ip, sizeof(ip)); debug4("connecting IO back to %s:%d", ip, ntohs(port)); - } + } if ((sock = (int) slurm_open_stream(&srun->ioaddr)) < 0) { error("connect io: %m"); - /* XXX retry or silently fail? + /* XXX retry or silently fail? * fail for now. */ return SLURM_ERROR; @@ -1644,13 +1644,13 @@ _send_io_init_msg(int sock, srun_key_t *key, slurmd_job_t *job) msg.stderr_objs = 0; else msg.stderr_objs = list_count(job->stderr_eio_objs); - + if (io_init_msg_write_to_fd(sock, &msg) != SLURM_SUCCESS) { error("Couldn't sent slurm_io_init_msg"); return SLURM_ERROR; } - - + + return SLURM_SUCCESS; } @@ -1696,7 +1696,7 @@ _send_eof_msg(struct task_read_info *out) debug4("Entering _send_eof_msg"); out->eof_msg_sent = true; - + if (_outgoing_buf_free(out->job)) { msg = list_dequeue(out->job->free_outgoing); } else { @@ -1733,12 +1733,12 @@ _send_eof_msg(struct task_read_info *out) /* Some clients only take certain I/O streams */ if (out->type==SLURM_IO_STDOUT) { - if (client->ltaskid_stdout != -1 && + if (client->ltaskid_stdout != -1 && client->ltaskid_stdout != out->ltaskid) continue; } if (out->type==SLURM_IO_STDERR) { - if (client->ltaskid_stderr != -1 && + if (client->ltaskid_stderr != -1 && client->ltaskid_stderr != out->ltaskid) continue; } @@ -1816,7 +1816,7 @@ _task_build_message(struct task_read_info *out, slurmd_job_t *job, cbuf_t cbuf) /* free the Buf packbuf, but not the memory to which it points */ packbuf->head = NULL; free_buf(packbuf); - + debug4("Leaving _task_build_message"); return msg; } @@ -1947,8 +1947,8 @@ user_managed_io_client_connect(int ntasks, srun_info_t *srun, void -io_find_filename_pattern( slurmd_job_t *job, - slurmd_filename_pattern_t *outpattern, +io_find_filename_pattern( slurmd_job_t *job, + slurmd_filename_pattern_t *outpattern, slurmd_filename_pattern_t *errpattern, bool *same_out_err_files ) { @@ -2027,12 +2027,12 @@ io_find_filename_pattern( slurmd_job_t *job, for (jj = ii+1; jj < job->ntasks; jj++) { if (!job->task[ii]->ofname || !job->task[jj]->ofname || - strcmp(job->task[ii]->ofname, + strcmp(job->task[ii]->ofname, job->task[jj]->ofname) == 0) of_all_unique = false; if (!job->task[ii]->efname || !job->task[jj]->efname || - strcmp(job->task[ii]->efname, + strcmp(job->task[ii]->efname, job->task[jj]->efname) == 0) ef_all_unique = false; } @@ -2047,7 +2047,7 @@ io_find_filename_pattern( slurmd_job_t *job, if (of_all_unique && ef_all_unique) { *same_out_err_files = true; for (ii = 0; ii < job->ntasks; ii++) { - if (job->task[ii]->ofname && + if (job->task[ii]->ofname && job->task[ii]->efname && strcmp(job->task[ii]->ofname, job->task[ii]->efname) != 0) { @@ -2080,6 +2080,3 @@ io_get_file_flags(slurmd_job_t *job) } return file_flags; } - - - diff --git a/src/slurmdbd/Makefile.in b/src/slurmdbd/Makefile.in index bb81d61aea88af8045f81df3e0183c06d6ad27bc..c4476facd0bf9c13b49133adf4af6a9b2951ba51 100644 --- a/src/slurmdbd/Makefile.in +++ b/src/slurmdbd/Makefile.in @@ -196,6 +196,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/slurmdbd/proc_req.c b/src/slurmdbd/proc_req.c index cdfea0f636ab7b903617710f920ff86547a163c0..6143aefe47585dcf0eaa41d7394f7dc4995f7c0e 100644 --- a/src/slurmdbd/proc_req.c +++ b/src/slurmdbd/proc_req.c @@ -1682,8 +1682,7 @@ static int _init_conn(slurmdbd_conn_t *slurmdbd_conn, char *comment = NULL; int rc = SLURM_SUCCESS; - if ((rc = slurmdbd_unpack_init_msg(slurmdbd_conn->rpc_version, - &init_msg, in_buffer, + if ((rc = slurmdbd_unpack_init_msg(&init_msg, in_buffer, slurmdbd_conf->auth_info)) != SLURM_SUCCESS) { comment = "Failed to unpack DBD_INIT message"; @@ -1702,8 +1701,8 @@ static int _init_conn(slurmdbd_conn_t *slurmdbd_conn, } *uid = init_msg->uid; - debug("DBD_INIT: VERSION:%u UID:%u IP:%s CONN:%u", - init_msg->version, init_msg->uid, + debug("DBD_INIT: CLUSTER:%s VERSION:%u UID:%u IP:%s CONN:%u", + init_msg->cluster_name, init_msg->version, init_msg->uid, slurmdbd_conn->ip, slurmdbd_conn->newsockfd); slurmdbd_conn->db_conn = acct_storage_g_get_connection( false, slurmdbd_conn->newsockfd, init_msg->rollback); diff --git a/src/smap/Makefile.in b/src/smap/Makefile.in index 23e75dddf285165d743968722359de437fec1e10..8117c83b46aa1f97c56fa46cdac4b7a415ddbf69 100644 --- a/src/smap/Makefile.in +++ b/src/smap/Makefile.in @@ -213,6 +213,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/sprio/Makefile.in b/src/sprio/Makefile.in index 8b921e5fd7673078ba167040ed81d9e9baac964f..4366005ae15f26dcf9719840a5003befcb88604f 100644 --- a/src/sprio/Makefile.in +++ b/src/sprio/Makefile.in @@ -196,6 +196,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/squeue/Makefile.in b/src/squeue/Makefile.in index a4e7d2099ef9922b43bc4037f0b837a6d7e08cd0..d4e4a0de6772b71b7088603baaa1858aee6f0e0f 100644 --- a/src/squeue/Makefile.in +++ b/src/squeue/Makefile.in @@ -197,6 +197,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/sreport/Makefile.in b/src/sreport/Makefile.in index 7338b9aa87f95c88466fa9b882a730a3e98f6c63..f9f60a946c9a514ba6a1598badca333dc7b163ff 100644 --- a/src/sreport/Makefile.in +++ b/src/sreport/Makefile.in @@ -196,6 +196,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/sreport/job_reports.c b/src/sreport/job_reports.c index 7a9be22754d77c8dc42d736346436d9760c11148..b071476fead59faf88435549d38ee3ca1e35c5d2 100644 --- a/src/sreport/job_reports.c +++ b/src/sreport/job_reports.c @@ -724,6 +724,8 @@ extern int job_sizes_grouped_by_top_acct(int argc, char *argv[]) /* don't limit associations to having the partition_list */ //assoc_cond.partition_list = job_cond->partition_list; if(!job_cond->acct_list || !list_count(job_cond->acct_list)) { + if(job_cond->acct_list) + list_destroy(job_cond->acct_list); job_cond->acct_list = list_create(NULL); list_append(job_cond->acct_list, "root"); } diff --git a/src/srun/Makefile.in b/src/srun/Makefile.in index d511c58bcd71f9c793848fdb5070a69bca8d605f..542b50e82f7053fff7aea480c5a01bc25b25d0f1 100644 --- a/src/srun/Makefile.in +++ b/src/srun/Makefile.in @@ -196,6 +196,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/srun/opt.c b/src/srun/opt.c index a223268c7c71b9ac74a3722563ddb364ed6495d5..fc508004a6775719d9b6311e97a6d5918e785442 100644 --- a/src/srun/opt.c +++ b/src/srun/opt.c @@ -1814,6 +1814,8 @@ static bool _opt_verify(void) core_format_enable (opt.core_type); /* massage the numbers */ if (opt.nodelist) { + if (hl) /* possibly built above */ + hostlist_destroy(hl); hl = hostlist_create(opt.nodelist); if (!hl) { error("memory allocation failure"); @@ -1849,12 +1851,10 @@ static bool _opt_verify(void) /* * make sure # of procs >= min_nodes */ - if (opt.nprocs < opt.min_nodes) { - + if ((opt.nprocs < opt.min_nodes) && (opt.nprocs > 0)) { info ("Warning: can't run %d processes on %d " "nodes, setting nnodes to %d", opt.nprocs, opt.min_nodes, opt.nprocs); - opt.min_nodes = opt.nprocs; opt.nodes_set_opt = true; if (opt.max_nodes diff --git a/src/srun_cr/Makefile.in b/src/srun_cr/Makefile.in index 3db67b608d5ff7df6d053c67cef15f47a5338caf..361089eba7fb594730db078d337075c962dcd0a8 100644 --- a/src/srun_cr/Makefile.in +++ b/src/srun_cr/Makefile.in @@ -194,6 +194,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/sshare/Makefile.in b/src/sshare/Makefile.in index 330f0f91881e74b2ac16050139d7414818098964..cd77114c6cfe66f34b5a118b773ef22c24bcb465 100644 --- a/src/sshare/Makefile.in +++ b/src/sshare/Makefile.in @@ -194,6 +194,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/sstat/Makefile.in b/src/sstat/Makefile.in index 52a3b0595fe1d59fd22c740c9612c5d46bd6a634..ff15a942099afddc078b5fd6f543268ff93994a1 100644 --- a/src/sstat/Makefile.in +++ b/src/sstat/Makefile.in @@ -196,6 +196,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/strigger/Makefile.in b/src/strigger/Makefile.in index 8db1144b2c123e30db95a95dd5b96f583785050a..2ba7e988771cfe0013de8121025a1914791bca21 100644 --- a/src/strigger/Makefile.in +++ b/src/strigger/Makefile.in @@ -196,6 +196,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/src/sview/Makefile.in b/src/sview/Makefile.in index 5cd560ee9810cf5cf32d65c97a749b46406cab2e..b4cdceba3a61279249a3d7587fc77f06971bb556 100644 --- a/src/sview/Makefile.in +++ b/src/sview/Makefile.in @@ -216,6 +216,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in index abf8f4e36b7fddae520982e44667048e709f8982..7de922bc3a28cd05b91b8f276e4f9765b010c945 100644 --- a/testsuite/Makefile.in +++ b/testsuite/Makefile.in @@ -212,6 +212,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/testsuite/expect/Makefile.in b/testsuite/expect/Makefile.in index 211aad2d062b4c130560a5b5c8436fdc281154bc..cac543021c1434738e496f848c3f6a9782b2c385 100644 --- a/testsuite/expect/Makefile.in +++ b/testsuite/expect/Makefile.in @@ -165,6 +165,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/testsuite/expect/globals_accounting b/testsuite/expect/globals_accounting index de2266e0ceba2835c8b82bde9e6785cfdb1be2ff..f7807156d283d9d8232f3ff2d6c20e4bade71daa 100644 --- a/testsuite/expect/globals_accounting +++ b/testsuite/expect/globals_accounting @@ -131,7 +131,7 @@ proc add_cluster {name qos fairshare grpcpu grpjob grpnode grpsubmit maxcpumin m incr exit_code 1 } -re "Problem adding" { - send_user "FAILURE: there was an unknwon problem\n" + send_user "FAILURE: there was an unknown problem\n" incr exit_code 1 } -re "No associations" { @@ -196,7 +196,7 @@ proc remove_cluster {name} { incr exit_code 1 } -re "Problem adding" { - send_user "FAILURE: there was an unknwon problem\n" + send_user "FAILURE: there was an unknown problem\n" incr exit_code 1 } -re "No associations" { @@ -357,7 +357,7 @@ proc add_acct { cluster parent name desc org qos fairshare grpcpumin grpcpu grpj incr exit_code 1 } -re "Problem adding" { - send_user "FAILURE: there was an unknwon problem\n" + send_user "FAILURE: there was an unknown problem\n" incr exit_code 1 } -re "No associations" { @@ -429,7 +429,7 @@ proc remove_acct { cluster name } { incr exit_code 1 } -re "Problem adding" { - send_user "FAILURE: there was an unknwon problem\n" + send_user "FAILURE: there was an unknown problem\n" incr exit_code 1 } -re "No associations" { @@ -611,7 +611,7 @@ proc mod_acct { cluster wparent name wdesc worg qos fairshare grpcpumin grpcpu g incr exit_code 1 } -re "Problem adding" { - send_user "FAILURE: there was an unknwon problem\n" + send_user "FAILURE: there was an unknown problem\n" incr exit_code 1 } -re "No associations" { @@ -776,7 +776,7 @@ proc add_user { cluster account name part admin dacct dwckey wckey qos fairshare incr exit_code 1 } -re "Problem adding" { - send_user "FAILURE: there was an unknwon problem\n" + send_user "FAILURE: there was an unknown problem\n" incr exit_code 1 } -re "No associations" { @@ -1252,7 +1252,7 @@ proc add_coor { accounts names } { incr exit_code 1 } -re "Problem adding" { - send_user "FAILURE: there was an unknwon problem\n" + send_user "FAILURE: there was an unknown problem\n" incr exit_code 1 } -re "No associations" { diff --git a/testsuite/expect/test1.51 b/testsuite/expect/test1.51 index e3d6ef77f6d9480a8ecd01a4d9e912a79d40e34a..ba3ca6f5b164ce7d1b1fd2220d107ab04a580f84 100755 --- a/testsuite/expect/test1.51 +++ b/testsuite/expect/test1.51 @@ -51,7 +51,7 @@ if {[test_front_end] != 0} { make_bash_script $file_in "umask" make_bash_script $file_script " - umask 0123 + umask 023 $srun -N1 -t1 ./$file_in " @@ -62,7 +62,7 @@ set matches 0 set timeout $max_job_delay set srun_pid [spawn ./$file_script] expect { - -re (0123|123) { + -re (0023|023) { set matches 1 exp_continue } diff --git a/testsuite/expect/test1.57 b/testsuite/expect/test1.57 index 4ce2a916845093045fb4b878aedbfb494b7445f0..1d8f45e6833a15716ae7be2b163dfb4571562a35 100755 --- a/testsuite/expect/test1.57 +++ b/testsuite/expect/test1.57 @@ -8,7 +8,7 @@ # anything else indicates a failure mode that must be investigated. ############################################################################ # Copyright (C) 2002-2007 The Regents of the University of California. -# Copyright (C) 2008 Lawrence Livermore National Security. +# Copyright (C) 2008-2010 Lawrence Livermore National Security. # Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). # Written by Morris Jette <jette1@llnl.gov> # CODE-OCEC-09-009. All rights reserved. @@ -41,30 +41,39 @@ print_header $test_id set super_user [test_super_user] # -# Generate a pseudo-random job_id based upon the time -# The odd looking calculation avoid errors trying to perform -# arithmetic with an invalid octal number (e.g. hours = "09") +# Generate a job_id to use based upon the currently generated job_id # -set hours 0 -set minutes 0 -set seconds 0 -spawn $bin_date +set job_id 0 +set timeout $max_job_delay +set salloc_pid [spawn $salloc -t1 $bin_sleep 0] expect { - -re "($number)($number):($number)($number):($number)($number)" { - set hours [expr 10 * $expect_out(1,string) + $expect_out(2,string)] - set minutes [expr 10 * $expect_out(3,string) + $expect_out(4,string)] - set seconds [expr 10 * $expect_out(5,string) + $expect_out(6,string)] + -re "Granted job allocation ($number)" { + set job_id $expect_out(1,string) + exp_continue + } + timeout { + send_user "\nFAILURE: salloc not responding\n" + if {$job_id != 0} { + cancel_job $job_id + } + slow_kill [expr 0 - $salloc_pid] + set exit_code 1 } eof { wait } } -# set jobid 999HHMMSS -set job_id [expr 999000000 + 10000 * $hours + 100 * $minutes + $seconds] +# Confirm the job's partition +if {$job_id == 0} { + send_user "\nFAILURE: job submit failure\n" + exit 1 +} + +set job_id [expr $job_id + 1000] # # Submit a slurm job that will execute 'id' -# Use a really large job id to (hopefully) avoid future failure: +# Use a large job id to (hopefully) avoid future failure: # "error: Invalid job credential from <UID>@<IP>: Job credential replayed" # set timeout $max_job_delay diff --git a/testsuite/expect/test19.5 b/testsuite/expect/test19.5 index 708f432671c14c9a7821b93a6afb398b6b557464..b30f45641e61635d42684d8a1540b3d612d90ad2 100755 --- a/testsuite/expect/test19.5 +++ b/testsuite/expect/test19.5 @@ -195,6 +195,8 @@ if {[wait_for_file $file_out_time] != 0} { -re "CG *0:($number)" { send_user "\nFAILURE: job unexpected found in completing state.\n" send_user " This may be a sign of node failure and job requeue.\n" + send_user " Check for job state transistions through RUNNING,\n" + send_user " COMPLETING, PENDING and RUNNING again.\n" set exit_code 1 set run_time $expect_out(1,string) exp_continue diff --git a/testsuite/expect/test21.10 b/testsuite/expect/test21.10 index f5a21aee6fe8a83feb96232537495c19d638ae53..352bdcdab30faa382a25a3c3526594ee4e98293f 100755 --- a/testsuite/expect/test21.10 +++ b/testsuite/expect/test21.10 @@ -123,7 +123,7 @@ set my_pid [spawn $sacctmgr -i $del $clu $tc1] incr exit_code 1 } -re "Problem adding" { - send_user "FAILURE: there was an unknwon problem\n" + send_user "FAILURE: there was an unknown problem\n" incr exit_code 1 } -re "No associations" { @@ -181,7 +181,7 @@ set my_pid [spawn $sacctmgr -i $del $clu $tc1] incr exit_code 1 } -re "Problem adding" { - send_user "FAILURE: there was an unknwon problem\n" + send_user "FAILURE: there was an unknown problem\n" incr exit_code 1 } -re "No associations" { diff --git a/testsuite/expect/test21.22 b/testsuite/expect/test21.22 index 92b970dc582dd07f17adf3293a620be5df12573b..c9609d5e82c55a3b1e17610139f3d3d6b544572e 100755 --- a/testsuite/expect/test21.22 +++ b/testsuite/expect/test21.22 @@ -299,7 +299,7 @@ proc _remove_cluster {name} { incr exit_code 1 } -re "Problem adding" { - send_user "FAILURE: there was an unknwon problem\n" + send_user "FAILURE: there was an unknown problem\n" incr exit_code 1 } -re "No associations" { @@ -375,7 +375,7 @@ proc _remove_acct { cluster name } { incr exit_code 1 } -re "Problem adding" { - send_user "FAILURE: there was an unknwon problem\n" + send_user "FAILURE: there was an unknown problem\n" incr exit_code 1 } -re "No associations" { diff --git a/testsuite/expect/test21.5 b/testsuite/expect/test21.5 index d020fad69f3aaeafd9bd6fec59c42728996ffa21..86f5378d002afd259db5ae73cacea71b270c0581 100755 --- a/testsuite/expect/test21.5 +++ b/testsuite/expect/test21.5 @@ -107,7 +107,7 @@ set my_pid [spawn $sacctmgr -i $del $clu $tc1] incr exit_code 1 } -re "Problem adding" { - send_user "FAILURE: there was an unknwon problem\n" + send_user "FAILURE: there was an unknown problem\n" incr exit_code 1 } -re "No associations" { diff --git a/testsuite/expect/test21.6 b/testsuite/expect/test21.6 index 4b2aeea5ffa5786d85fdd48fdb71b4a303884eed..4e5ad5b25686a18d107088a1d013ff969e5121fd 100755 --- a/testsuite/expect/test21.6 +++ b/testsuite/expect/test21.6 @@ -110,7 +110,7 @@ set my_pid [spawn $sacctmgr -i $del $clu $tc1,$tc2,$tc3] incr exit_code 1 } -re "Problem adding" { - send_user "FAILURE: there was an unknwon problem\n" + send_user "FAILURE: there was an unknown problem\n" incr exit_code 1 } -re "No associations" { diff --git a/testsuite/slurm_unit/Makefile.in b/testsuite/slurm_unit/Makefile.in index 89885c6c641655053e2330a882eaccb1e533ca69..667cc98cd563b5568b6011343a3f21806eb83f74 100644 --- a/testsuite/slurm_unit/Makefile.in +++ b/testsuite/slurm_unit/Makefile.in @@ -205,6 +205,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/testsuite/slurm_unit/api/Makefile.in b/testsuite/slurm_unit/api/Makefile.in index f1cb333e3ad13ee45d3332ba4fedd5bb3554cbda..8e77c1f405513da29663979c0293d228a0a23793 100644 --- a/testsuite/slurm_unit/api/Makefile.in +++ b/testsuite/slurm_unit/api/Makefile.in @@ -228,6 +228,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/testsuite/slurm_unit/api/manual/Makefile.in b/testsuite/slurm_unit/api/manual/Makefile.in index cdcd693ec7a7e416ee83b2ed13db8d355d3f7ca5..a41c402e11040c6216d179595642e54bb003ad83 100644 --- a/testsuite/slurm_unit/api/manual/Makefile.in +++ b/testsuite/slurm_unit/api/manual/Makefile.in @@ -220,6 +220,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/testsuite/slurm_unit/common/Makefile.in b/testsuite/slurm_unit/common/Makefile.in index 52d3dd87a93c766b7ecefc270baa7db251ead876..bef34f55d74f7d25468fddb5ef8a53ac629cd6c0 100644 --- a/testsuite/slurm_unit/common/Makefile.in +++ b/testsuite/slurm_unit/common/Makefile.in @@ -208,6 +208,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/testsuite/slurm_unit/slurmctld/Makefile.in b/testsuite/slurm_unit/slurmctld/Makefile.in index 7a68a667ff35f6be1078afd348956000d55a5222..850e47dc909741b351215c6b0cc20ffbc4faeed4 100644 --- a/testsuite/slurm_unit/slurmctld/Makefile.in +++ b/testsuite/slurm_unit/slurmctld/Makefile.in @@ -170,6 +170,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/testsuite/slurm_unit/slurmd/Makefile.in b/testsuite/slurm_unit/slurmd/Makefile.in index 7279ca224d86afdb5623dc5e1de3c55698f9e053..df53f810b1960c3033233fd6f6dcffd9d4336741 100644 --- a/testsuite/slurm_unit/slurmd/Makefile.in +++ b/testsuite/slurm_unit/slurmd/Makefile.in @@ -170,6 +170,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@ diff --git a/testsuite/slurm_unit/slurmdbd/Makefile.in b/testsuite/slurm_unit/slurmdbd/Makefile.in index 213b14b42b626e33224ef03f426b24b21d89ee92..1de307c997d00c56ff6d7c1dd8d0c54327ec9982 100644 --- a/testsuite/slurm_unit/slurmdbd/Makefile.in +++ b/testsuite/slurm_unit/slurmdbd/Makefile.in @@ -170,6 +170,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ +PAM_DIR = @PAM_DIR@ PAM_LIBS = @PAM_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PGSQL_CFLAGS = @PGSQL_CFLAGS@