diff --git a/NEWS b/NEWS index 601c8bfa27a1c56c5052608b95dbb65286b6b4a9..02f73a953701315e73c4aea1d1021df57401a319 100644 --- a/NEWS +++ b/NEWS @@ -11,6 +11,9 @@ documents those changes that are of interest to users and admins. algorythm. Spawn and batch mode work the same as before. New slurm.conf variable SpanCount=50 is default. This is the number of threads per stop on the tree. + -- Configuration parameter HeartBeatInterval is depracated. Now used half + of SlurmdTimeout and SlurmctldTimeout for communications to slurmd and + slurmctld daemons repsectively. * Changes in SLURM 1.0.2 ======================== diff --git a/doc/html/big_sys.shtml b/doc/html/big_sys.shtml index 2d0f55e0c9e08854496174951dc5ea96ba0f0371..ef9949cbea116fbdc665ea7b79251cc0d907b9e4 100644 --- a/doc/html/big_sys.shtml +++ b/doc/html/big_sys.shtml @@ -53,19 +53,17 @@ will both make for easier administration and better performance.</p> <h2>Timers</h2> -<p>The parameter <i>HeartBeatInterval</i> determines the interval +<p>The configuration parameter <i>SlurmdTimeout</i> determines the interval at which <i>slurmctld</i> routinely communicates with <i>slurmd</i>. +Communications occur at half the <i>SlurmdTimeout</i> value. The purpose of this is to determine when a compute node fails and thus should not be allocated work. Longer intervals decrease system noise on compute nodes (we do synchronize these requests across the cluster, but there will be some impact upon applications). -For really large clusters, <i>HeartBeatInterval</i> values of -60 seconds or more are reasonable. -The values of <i>SlurmctldTimeout</i> and <i>SlurmdTimeout</i> -may also need to be increased (say to double the value of -<i>HeartBeatInterval</i>).</p> +For really large clusters, <i>SlurmdTimeoutl</i> values of +120 seconds or more are reasonable.</p> -<p style="text-align:center;">Last modified 14 January 2006</p> +<p style="text-align:center;">Last modified 28 January 2006</p> <!--#include virtual="footer.txt"--> diff --git a/doc/html/configurator.html b/doc/html/configurator.html index 3983f5b4837c08932bb2bcca33c25bce5105a5c2..29d0cf1b1a95500d29363339a2181d3537c8b983 100644 --- a/doc/html/configurator.html +++ b/doc/html/configurator.html @@ -1,5 +1,5 @@ <!-- -Copyright (C) 2005 The Regents of the University of California. +Copyright (C) 2005-2006 The Regents of the University of California. Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). Written by Morris Jette <jette1@llnl.gov> and Danny Auble <da@llnl.gov> UCRL-WEB-217616. @@ -95,7 +95,6 @@ function displayfile() "# TIMERS <br>" + "SlurmctldTimeout=" + document.config.slurmctld_timeout.value + "<br>" + "SlurmdTimeout=" + document.config.slurmd_timeout.value + "<br>" + - "HeartbeatInterval=" + document.config.heartbeat_interval.value + "<br>" + "InactiveLimit=" + document.config.inactive_limit.value + "<br>" + "MinJobAge=" + document.config.min_job_age.value + "<br>" + "KillWait=" + document.config.kill_wait.value + "<br>" + @@ -405,10 +404,6 @@ becoming the master controller <B>SlurmdTimeout</B>: How many seconds the SLURM controller waits for the slurmd to respond to a request before considering the node DOWN <P> -<input type="text" name="heartbeat_interval" value="60"> -<B>HeartbeatInterval</B>: How many seconds between SLURM controller attempts to -contace the slurmd daemons -<P> <input type="text" name="inactive_limit" value="0"> <B>InactiveLimit</B>: How many seconds the SLURM controller waits for srun commands to respond before considering the job or job step inactive and diff --git a/doc/html/overview.shtml b/doc/html/overview.shtml index 14c60712a7557bee04e393245540f6663ddbcd51..8894161046a9d82a3f9a3d1fc122e0a905c22da5 100644 --- a/doc/html/overview.shtml +++ b/doc/html/overview.shtml @@ -117,7 +117,6 @@ BackupController=linux0002 # AuthType=auth/munge Epilog=/usr/local/slurm/sbin/epilog -HeartbeatInterval=60 PluginDir=/usr/local/slurm/lib Prolog=/usr/local/slurm/sbin/prolog SlurmctldPort=7002 diff --git a/doc/html/quickstart_admin.shtml b/doc/html/quickstart_admin.shtml index 74b0367c55cb0ae0972aa60d65515eeeae8ea98b..f5c3f3676d5368062c6173c4b54813e05290bbbd 100644 --- a/doc/html/quickstart_admin.shtml +++ b/doc/html/quickstart_admin.shtml @@ -500,7 +500,6 @@ ControlMachine = adevi Epilog = (null) FastSchedule = 1 FirstJobId = 1 -HeartbeatInterval = 60 InactiveLimit = 0 JobCompLoc = /var/tmp/jette/slurm.job.log JobCompType = jobcomp/filetxt diff --git a/doc/man/man5/slurm.conf.5 b/doc/man/man5/slurm.conf.5 index c87166d979a6f62832cbe3053c36b3f5c9f4a09f..7aeae249b31ae2a25ceace47b9a43db6ea495bc8 100644 --- a/doc/man/man5/slurm.conf.5 +++ b/doc/man/man5/slurm.conf.5 @@ -1,4 +1,4 @@ -.TH "slurm.conf" "5" "January 2006" "slurm.conf 1.0" "Slurm configuration file" +.TH "slurm.conf" "5" "January 2006" "slurm.conf 1.1" "Slurm configuration file" .SH "NAME" slurm.conf \- Slurm configuration file .SH "DESCRIPTION" @@ -115,9 +115,9 @@ with a job id space which is disjoint from the interactive jobs. The default value is 1. .TP \fBHeartbeatInterval\fR -The interval, in seconds, at which the SLURM controller tests the -status of other daemons. The default value is 30 seconds. -May not exceed 65534. +Defunct paramter. +Interval of heartbeat for slurmd daemon is half of \fBSlurmdTimeout\fR. +Interval of heartbeat for slurmctld daemon is half of \fBSlurmctldTimeout\fR. .TP \fBInactiveLimit\fR The interval, in seconds, a job or job step is permitted to be inactive @@ -372,9 +372,9 @@ The default value is "/var/run/slurmctld.pid". \fBSlurmctldPort\fR The port number that the SLURM controller, \fBslurmctld\fR, listens to for work. The default value is SLURMCTLD_PORT as established at system -build time. NOTE: Either slurmctld and slurmd daemons must not execute -on the same nodes or the values of \fBSlurmctldPort\fR and \fBSlurmdPort\fR -must be different. +build time. NOTE: Either \fBslurmctld\fR and \fBslurmd\fR daemons must not +execute on the same nodes or the values of \fBSlurmctldPort\fR and +\fBSlurmdPort\fR must be different. .TP \fBSlurmctldTimeout\fR The interval, in seconds, that the backup controller waits for the @@ -421,8 +421,12 @@ different shared memory region and lose track of any running jobs. The interval, in seconds, that the SLURM controller waits for \fBslurmd\fR to respond before configuring that node's state to DOWN. The default value is 300 seconds. -A value of zero indicates the node should never be set DOWN if not responding. -May not exceed 65534. +A value of zero indicates the node will not be tested by \fBslurmctld\fR to +confirm the state of \fBslurmd\fR, the node will not be automatically set to +a DOWN state indicating a non-responsive \fBslurmd\fR, and some other tool +will take responsibility for monitoring the state of each compute node +and its \fBslurmd\fR daemon. +The value may not exceed 65534. .TP \fBStateSaveLocation\fR Fully qualified pathname of a directory into which the SLURM controller, diff --git a/etc/slurm.conf.example b/etc/slurm.conf.example index 658f5177e3704f48d15a6841c9a7cbbc9e3ad10a..2721e1ce24444a332401a728f40cded6d00b575e 100644 --- a/etc/slurm.conf.example +++ b/etc/slurm.conf.example @@ -334,9 +334,6 @@ JobAcctType=jobacct/none # node's state to DOWN. If set to 0, this feature # is disabled. # -# "HeartbeatInterval": The interval, in seconds, at which the SLURM -# controller tests the status of other daemons. -# # "InactiveLimit" : The interval, in seconds, a job or job step is # permitted to be inactive (srun command not responding) # before being terminated. @@ -355,7 +352,6 @@ JobAcctType=jobacct/none # # SlurmctldTimeout=300 # Defaults to 300 seconds # SlurmdTimeout=300 # Defaults to 300 seconds -# HeartBeatInterval=30 # Defaults to 30 seconds # InactiveLimit=600 # Defaults to 0 (unlimited) # MinJobAge=30 # Defaults to 300 seconds # KillWait=10 # Defaults to 30 seconds diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in index 23e27d108ae77b0c7cc667ba60c6ef2a5bea58f6..b672decbdce967eb355c3fd46ed98333e81d9b45 100644 --- a/slurm/slurm.h.in +++ b/slurm/slurm.h.in @@ -559,7 +559,6 @@ typedef struct slurm_ctl_conf { uint32_t first_job_id; /* first slurm generated job_id to assign */ uint16_t fast_schedule; /* 1 to *not* check configurations by node * (only check configuration file, faster) */ - uint16_t heartbeat_interval; /* interval between heartbeats, seconds */ uint16_t inactive_limit;/* seconds of inactivity before a * inactive resource allocation is released */ char *job_acct_loc; /* job accounting log location */ diff --git a/src/api/config_info.c b/src/api/config_info.c index 16da7ba5b989ebcc60537065016d4aa2b52d0be7..ef12ce3fe32f85de25185d424d58391a4b9cd9e5 100644 --- a/src/api/config_info.c +++ b/src/api/config_info.c @@ -2,7 +2,7 @@ * config_info.c - get/print the system configuration information of slurm * $Id$ ***************************************************************************** - * Copyright (C) 2002 The Regents of the University of California. + * Copyright (C) 2002-2006 The Regents of the University of California. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Morris Jette <jette1@llnl.gov> and Kevin Tew <tew1@llnl.gov>. * UCRL-CODE-217948. @@ -85,8 +85,6 @@ void slurm_print_ctl_conf ( FILE* out, slurm_ctl_conf_ptr->fast_schedule); fprintf(out, "FirstJobId = %u\n", slurm_ctl_conf_ptr->first_job_id); - fprintf(out, "HeartbeatInterval = %u\n", - slurm_ctl_conf_ptr->heartbeat_interval); fprintf(out, "InactiveLimit = %u\n", slurm_ctl_conf_ptr->inactive_limit); fprintf(out, "JobAcctLoc = %s\n", diff --git a/src/common/read_config.c b/src/common/read_config.c index aa08d89feecf38bf56379e11b981853c85a703c2..7e72de7e40671e4cdbc9666a5ff81c431686a94c 100644 --- a/src/common/read_config.c +++ b/src/common/read_config.c @@ -3,7 +3,7 @@ * * $Id$ ***************************************************************************** - * Copyright (C) 2002 The Regents of the University of California. + * Copyright (C) 2002-2006 The Regents of the University of California. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Morris Jette <jette1@llnl.gov>. * UCRL-CODE-217948. @@ -363,7 +363,6 @@ init_slurm_conf (slurm_ctl_conf_t *ctl_conf_ptr) xfree (ctl_conf_ptr->epilog); ctl_conf_ptr->fast_schedule = (uint16_t) NO_VAL; ctl_conf_ptr->first_job_id = (uint32_t) NO_VAL; - ctl_conf_ptr->heartbeat_interval = (uint16_t) NO_VAL; ctl_conf_ptr->inactive_limit = (uint16_t) NO_VAL; xfree (ctl_conf_ptr->job_acct_loc); xfree (ctl_conf_ptr->job_acct_parameters); @@ -617,15 +616,8 @@ parse_config_spec (char *in_line, slurm_ctl_conf_t *ctl_conf_ptr) ctl_conf_ptr->first_job_id = first_job_id; } - if ( heartbeat_interval != -1) { - if ( ctl_conf_ptr->heartbeat_interval != (uint16_t) NO_VAL) - error (MULTIPLE_VALUE_MSG, "HeartbeatInterval"); - if ((heartbeat_interval < 0) || (heartbeat_interval > 0xffff)) - error("HeartbeatInterval=%ld is invalid", - heartbeat_interval); - else - ctl_conf_ptr->heartbeat_interval = heartbeat_interval; - } + if ( heartbeat_interval != -1) + error("HeartbeatInterval is defunct, see man slurm.conf"); if ( inactive_limit != -1) { if ( ctl_conf_ptr->inactive_limit != (uint16_t) NO_VAL) @@ -876,10 +868,7 @@ parse_config_spec (char *in_line, slurm_ctl_conf_t *ctl_conf_ptr) if ( slurmctld_debug != -1) { if ( ctl_conf_ptr->slurmctld_debug != (uint16_t) NO_VAL) error (MULTIPLE_VALUE_MSG, "SlurmctldDebug"); - if ((slurmctld_debug < 0) || (slurmctld_debug > 0xffff)) - error("SlurmctldDebug=%ld is invalid"); - else - ctl_conf_ptr->slurmctld_debug = slurmctld_debug; + ctl_conf_ptr->slurmctld_debug = slurmctld_debug; } if ( slurmctld_pidfile ) { @@ -1345,9 +1334,6 @@ validate_config (slurm_ctl_conf_t *ctl_conf_ptr) if (ctl_conf_ptr->first_job_id == (uint32_t) NO_VAL) ctl_conf_ptr->first_job_id = DEFAULT_FIRST_JOB_ID; - if (ctl_conf_ptr->heartbeat_interval == (uint16_t) NO_VAL) - ctl_conf_ptr->heartbeat_interval = DEFAULT_HEARTBEAT_INTERVAL; - if (ctl_conf_ptr->inactive_limit == (uint16_t) NO_VAL) ctl_conf_ptr->inactive_limit = DEFAULT_INACTIVE_LIMIT; diff --git a/src/common/read_config.h b/src/common/read_config.h index f3f8372f187af4e4383c81e0c1af26fb96749f77..b0d335c64a0b53f546ebf10ae4986468174e3093 100644 --- a/src/common/read_config.h +++ b/src/common/read_config.h @@ -4,7 +4,7 @@ * * $Id$ ***************************************************************************** - * Copyright (C) 2002 The Regents of the University of California. + * Copyright (C) 2002-2006 The Regents of the University of California. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Morris Mette <jette1@llnl.gov>. * UCRL-CODE-217948. @@ -35,7 +35,6 @@ #define DEFAULT_AUTH_TYPE "auth/none" #define DEFAULT_FAST_SCHEDULE 1 #define DEFAULT_FIRST_JOB_ID 1 -#define DEFAULT_HEARTBEAT_INTERVAL 60 /* NOTE: DEFAULT_INACTIVE_LIMIT must be 0 for Blue Gene/L systems */ #define DEFAULT_INACTIVE_LIMIT 0 #define DEFAULT_JOB_ACCT_LOC "/var/log/slurm_accounting.log" diff --git a/src/common/slurm_protocol_api.c b/src/common/slurm_protocol_api.c index 60906a1056b9527bd0b497cbfdb97bec750d4004..a18794fea90ad7a1d423478c3e84b4936cb5a3c5 100644 --- a/src/common/slurm_protocol_api.c +++ b/src/common/slurm_protocol_api.c @@ -2,7 +2,7 @@ * slurm_protocol_api.c - high-level slurm communication functions * $Id$ ***************************************************************************** - * Copyright (C) 2002 The Regents of the University of California. + * Copyright (C) 2002-2006 The Regents of the University of California. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Kevin Tew <tew1@llnl.gov>, et. al. * UCRL-CODE-217948. @@ -1407,7 +1407,7 @@ int slurm_send_recv_controller_msg(slurm_msg_t *req, slurm_msg_t *resp) (slurmctld_conf.backup_controller) && (difftime(time(NULL), start_time) < (slurmctld_conf.slurmctld_timeout + - slurmctld_conf.heartbeat_interval))) { + (slurmctld_conf.slurmctld_timeout / 2)))) { debug("Neither primary nor backup controller " "responding, sleep and retry"); slurm_free_return_code_msg(resp->data); diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c index 6b65c7019f5c449aea3c2b1cd13bf04555878823..7164f93eb4e27db23e0e3301250c90706e36b162 100644 --- a/src/common/slurm_protocol_pack.c +++ b/src/common/slurm_protocol_pack.c @@ -3,7 +3,7 @@ * * $Id$ ***************************************************************************** - * Copyright (C) 2002 The Regents of the University of California. + * Copyright (C) 2002-2006 The Regents of the University of California. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Kevin Tew <tew1@llnl.gov>, et. al. * UCRL-CODE-217948. @@ -1951,7 +1951,6 @@ _pack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t * build_ptr, Buf buffer) packstr(build_ptr->epilog, buffer); pack16(build_ptr->fast_schedule, buffer); pack32(build_ptr->first_job_id, buffer); - pack16(build_ptr->heartbeat_interval, buffer); pack16(build_ptr->inactive_limit, buffer); packstr(build_ptr->job_acct_loc, buffer); packstr(build_ptr->job_acct_parameters, buffer); @@ -2032,7 +2031,6 @@ _unpack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t ** safe_unpackstr_xmalloc(&build_ptr->epilog, &uint16_tmp, buffer); safe_unpack16(&build_ptr->fast_schedule, buffer); safe_unpack32(&build_ptr->first_job_id, buffer); - safe_unpack16(&build_ptr->heartbeat_interval, buffer); safe_unpack16(&build_ptr->inactive_limit, buffer); safe_unpackstr_xmalloc(&build_ptr->job_acct_loc, &uint16_tmp, buffer); safe_unpackstr_xmalloc(&build_ptr->job_acct_parameters, &uint16_tmp, diff --git a/src/slurmctld/backup.c b/src/slurmctld/backup.c index a60dd4abd2a01740afffb7ad99605225605725a9..d5473700635aba14dd611172237dcb87f7e807c4 100644 --- a/src/slurmctld/backup.c +++ b/src/slurmctld/backup.c @@ -1,7 +1,7 @@ /*****************************************************************************\ * backup.c - backup slurm controller ***************************************************************************** - * Copyright (C) 2002 The Regents of the University of California. + * Copyright (C) 2002-2006 The Regents of the University of California. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Morris Jette <jette@llnl.gov>, Kevin Tew <tew1@llnl.gov>, et. al. * UCRL-CODE-217948. @@ -109,8 +109,9 @@ void run_backup(void) while (slurmctld_config.shutdown_time == 0) { sleep(1); /* Lock of slurmctld_conf below not important */ - if (difftime(time(NULL), last_ping) < - slurmctld_conf.heartbeat_interval) + if (slurmctld_conf.slurmctld_timeout + && (difftime(time(NULL), last_ping) < + (slurmctld_conf.slurmctld_timeout / 2))) continue; last_ping = time(NULL); diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c index 45f3f0731c936f7bb79fdd63713527ce569e6956..8f1828d27b1652c351558f64d520eb3e49a6d4ac 100644 --- a/src/slurmctld/controller.c +++ b/src/slurmctld/controller.c @@ -701,6 +701,7 @@ static void *_slurmctld_background(void *no_data) static time_t last_timelimit_time; static time_t last_assert_primary_time; time_t now; + int ping_interval; /* Locks: Read config */ slurmctld_lock_t config_read_lock = { @@ -723,8 +724,11 @@ static void *_slurmctld_background(void *no_data) now = time(NULL); last_sched_time = last_checkpoint_time = last_group_time = now; last_timelimit_time = last_assert_primary_time = now; - last_ping_node_time = now + (time_t)MIN_CHECKIN_TIME - - (time_t)slurmctld_conf.heartbeat_interval; + if (slurmctld_conf.slurmd_timeout) + ping_interval = slurmctld_conf.slurmd_timeout / 2; + else + ping_interval = 60; + last_ping_node_time = now + (time_t)MIN_CHECKIN_TIME - ping_interval; last_ping_srun_time = now; (void) pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); (void) pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); @@ -762,12 +766,9 @@ static void *_slurmctld_background(void *no_data) unlock_slurmctld(job_write_lock); } - if (slurmctld_conf.heartbeat_interval && - (difftime(now, last_ping_node_time) >= - slurmctld_conf.heartbeat_interval) && - (is_ping_done())) { + if ((difftime(now, last_ping_node_time) >= ping_interval) + && (is_ping_done())) { last_ping_node_time = now; - debug2("Performing node ping"); lock_slurmctld(node_write_lock); ping_nodes(); unlock_slurmctld(node_write_lock); diff --git a/src/slurmctld/ping_nodes.c b/src/slurmctld/ping_nodes.c index 4bbce06a43d58655010a50d75943e262737b285c..cddd5bc2d94d1b043ddced17cddfed4e69d60d96 100644 --- a/src/slurmctld/ping_nodes.c +++ b/src/slurmctld/ping_nodes.c @@ -2,7 +2,7 @@ * ping_nodes.c - ping the slurmd daemons to test if they respond * Note: there is a global node table (node_record_table_ptr) ***************************************************************************** - * Copyright (C) 2003 The Regents of the University of California. + * Copyright (C) 2003-2006 The Regents of the University of California. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Morris Jette <jette1@llnl.gov> et. al. * UCRL-CODE-217948. @@ -162,7 +162,7 @@ void ping_nodes (void) node_dead_time = (time_t) 0; else node_dead_time = last_ping_time - slurmctld_conf.slurmd_timeout; - still_live_time = now - slurmctld_conf.heartbeat_interval; + still_live_time = now - (slurmctld_conf.slurmd_timeout / 2); last_ping_time = now; offset += MAX_REG_THREADS; @@ -179,7 +179,11 @@ void ping_nodes (void) //info("need to ping %s",node_ptr->name); base_state = node_ptr->node_state & NODE_STATE_BASE; no_resp_flag = node_ptr->node_state & NODE_STATE_NO_RESPOND; - if ((node_ptr->last_response != (time_t)0) + if ((slurmctld_conf.slurmd_timeout == 0) + && (base_state != NODE_STATE_UNKNOWN)) + continue; + + if ((node_ptr->last_response != (time_t) 0) && (node_ptr->last_response <= node_dead_time) && (base_state != NODE_STATE_DOWN)) { if (down_hostlist) @@ -191,7 +195,7 @@ void ping_nodes (void) continue; } - if (node_ptr->last_response == (time_t)0) { + if (node_ptr->last_response == (time_t) 0) { no_resp_flag = 1; node_ptr->last_response = slurmctld_conf.last_update; } diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c index a90363a867c556d2a72dff64c2228c965076d2df..f9a815d1e0d0f302f774c9128505d587951d8c33 100644 --- a/src/slurmctld/proc_req.c +++ b/src/slurmctld/proc_req.c @@ -3,7 +3,7 @@ * * $Id$ ***************************************************************************** - * Copyright (C) 2002 The Regents of the University of California. + * Copyright (C) 2002-2006 The Regents of the University of California. * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). * Written by Morris Jette <jette@llnl.gov>, Kevin Tew <tew1@llnl.gov>, et. al. * UCRL-CODE-217948. @@ -291,7 +291,6 @@ void _fill_ctld_conf(slurm_ctl_conf_t * conf_ptr) conf_ptr->epilog = xstrdup(slurmctld_conf.epilog); conf_ptr->fast_schedule = slurmctld_conf.fast_schedule; conf_ptr->first_job_id = slurmctld_conf.first_job_id; - conf_ptr->heartbeat_interval = slurmctld_conf.heartbeat_interval; conf_ptr->inactive_limit = slurmctld_conf.inactive_limit; conf_ptr->job_acct_loc = xstrdup(slurmctld_conf.job_acct_loc); conf_ptr->job_acct_parameters = xstrdup(slurmctld_conf.