From d462e3248fcdeb6f53c4978357086893b46cdaf6 Mon Sep 17 00:00:00 2001
From: Danny Auble <da@llnl.gov>
Date: Fri, 13 Nov 2009 00:01:03 +0000
Subject: [PATCH] fixed memory leak with slurmd for starting and prolog running
 jobs

---
 src/slurmd/slurmd/req.c    | 7 +++++++
 src/slurmd/slurmd/req.h    | 2 ++
 src/slurmd/slurmd/slurmd.c | 4 ++--
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/slurmd/slurmd/req.c b/src/slurmd/slurmd/req.c
index ec3f2c48378..1d91494bff2 100644
--- a/src/slurmd/slurmd/req.c
+++ b/src/slurmd/slurmd/req.c
@@ -3504,6 +3504,13 @@ _getgroups(void)
 	return _alloc_gids(n, gg);
 }
 
+extern void 
+destroy_starting_step(void *x)
+{
+	xfree(x);
+}
+
+
 
 extern void
 init_gids_cache(int cache)
diff --git a/src/slurmd/slurmd/req.h b/src/slurmd/slurmd/req.h
index 7f9ef1884fb..1723769c3e5 100644
--- a/src/slurmd/slurmd/req.h
+++ b/src/slurmd/slurmd/req.h
@@ -48,6 +48,8 @@
  */
 void slurmd_req(slurm_msg_t *msg);
 
+void destroy_starting_step(void *x);
+
 int init_gids_cache(int cache);
 
 #endif
diff --git a/src/slurmd/slurmd/slurmd.c b/src/slurmd/slurmd/slurmd.c
index 2b8516fdf99..e8de9408c4b 100644
--- a/src/slurmd/slurmd/slurmd.c
+++ b/src/slurmd/slurmd/slurmd.c
@@ -932,10 +932,10 @@ _init_conf(void)
 
 	slurm_mutex_init(&conf->config_mutex);
 
-	conf->starting_steps = list_create(NULL);
+	conf->starting_steps = list_create(destroy_starting_step);
 	slurm_mutex_init(&conf->starting_steps_lock);
 	pthread_cond_init(&conf->starting_steps_cond, NULL);
-	conf->prolog_running_jobs = list_create(NULL);
+	conf->prolog_running_jobs = list_create(slurm_destroy_uint32_ptr);
 	slurm_mutex_init(&conf->prolog_running_lock);
 	pthread_cond_init(&conf->prolog_running_cond, NULL);
 	return;
-- 
GitLab