diff --git a/src/slurmd/slurmd/req.c b/src/slurmd/slurmd/req.c
index b1d9666626faf2a03654d50b734b6f3d463a2f3a..8405e6322844289ff7b4d6a4fa95824512b41f65 100644
--- a/src/slurmd/slurmd/req.c
+++ b/src/slurmd/slurmd/req.c
@@ -1804,15 +1804,16 @@ _launch_job_fail(uint32_t job_id, uint32_t slurm_rc)
 	struct requeue_msg req_msg;
 	slurm_msg_t resp_msg;
 	int rc;
-	char *sched_params;
-	char requeue_no_hold;
-
-	requeue_no_hold = false;
-	sched_params = slurm_get_sched_params();
-	if (sched_params) {
-		if (strstr(sched_params, "nohold_on_prolog_fail"))
-			requeue_no_hold = true;
+	static time_t config_update = 0;
+	static bool requeue_no_hold = false;
+
+	if (config_update != conf->last_update) {
+		char *sched_params = slurm_get_sched_params();
+		requeue_no_hold = (sched_params && strstr(
+					   sched_params,
+					   "nohold_on_prolog_fail"));
 		xfree(sched_params);
+		config_update = conf->last_update;
 	}
 
 	slurm_msg_t_init(&resp_msg);
diff --git a/src/slurmd/slurmd/slurmd.c b/src/slurmd/slurmd/slurmd.c
index a041ecd967105fea74793584245c87a926180738..eac93d1ac3cf5609ca75a00a363a1369226b2445 100644
--- a/src/slurmd/slurmd/slurmd.c
+++ b/src/slurmd/slurmd/slurmd.c
@@ -776,6 +776,8 @@ _read_config(void)
 
 	conf->chos_loc = xstrdup(cf->chos_loc);
 
+	conf->last_update = time(NULL);
+
 	if (conf->conffile == NULL)
 		conf->conffile = xstrdup(cf->slurm_conf);
 
diff --git a/src/slurmd/slurmd/slurmd.h b/src/slurmd/slurmd/slurmd.h
index 1d1b6c4669ab6ef734f35ca6e43abff4c10aff15..385667d99c9d90d9f673be840564205589e0b2b5 100644
--- a/src/slurmd/slurmd/slurmd.h
+++ b/src/slurmd/slurmd/slurmd.h
@@ -107,6 +107,8 @@ typedef struct slurmd_config {
 	uint16_t      cr_type;		/* Consumable Resource Type:       *
 					 * CR_SOCKET, CR_CORE, CR_MEMORY,  *
 					 * CR_DEFAULT, etc.                */
+	time_t        last_update;	/* last update time of the
+					 * build parameters */
 	uint16_t      mem_limit_enforce; /* enforce mem limit on running job */
 	int           nice;		/* command line nice value spec    */
 	char         *node_name;	/* node name                       */