From 284b1c8c8c2cae9c7e3e587e121efcdc3a065514 Mon Sep 17 00:00:00 2001 From: Danny Auble <da@llnl.gov> Date: Tue, 5 May 2009 16:56:41 +0000 Subject: [PATCH] fixed a couple of memory leaks --- src/common/assoc_mgr.c | 5 +++++ .../accounting_storage/mysql/mysql_jobacct_process.c | 3 +-- .../priority/multifactor/priority_multifactor.c | 12 ++++++------ src/plugins/select/bluegene/plugin/bluegene.c | 2 +- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/common/assoc_mgr.c b/src/common/assoc_mgr.c index 51dee578de1..befdea1a7ae 100644 --- a/src/common/assoc_mgr.c +++ b/src/common/assoc_mgr.c @@ -1738,6 +1738,11 @@ extern int assoc_mgr_update_assocs(acct_update_object_t *update) list_iterator_reset(itr); } while((object = list_next(itr))) { + /* The root never changes so just continue + here. */ + if (object == assoc_mgr_root_assoc) + continue; + /* reset the limits because since a parent changed we could have different usage */ diff --git a/src/plugins/accounting_storage/mysql/mysql_jobacct_process.c b/src/plugins/accounting_storage/mysql/mysql_jobacct_process.c index b864235a6dd..d42e8c79e86 100644 --- a/src/plugins/accounting_storage/mysql/mysql_jobacct_process.c +++ b/src/plugins/accounting_storage/mysql/mysql_jobacct_process.c @@ -1059,6 +1059,7 @@ extern List mysql_jobacct_process_get_jobs(mysql_conn_t *mysql_conn, uid_t uid, continue; job = create_jobacct_job_rec(); + list_append(job_list, job); job->alloc_cpus = atoi(row[JOB_REQ_ALLOC_CPUS]); job->alloc_nodes = atoi(row[JOB_REQ_ALLOC_NODES]); @@ -1203,8 +1204,6 @@ extern List mysql_jobacct_process_get_jobs(mysql_conn_t *mysql_conn, uid_t uid, job->qos = atoi(row[JOB_REQ_QOS]); job->show_full = 1; - list_append(job_list, job); - if(job_cond && job_cond->step_list && list_count(job_cond->step_list)) { set = 0; diff --git a/src/plugins/priority/multifactor/priority_multifactor.c b/src/plugins/priority/multifactor/priority_multifactor.c index bfd306eb8df..aa0e7290a84 100644 --- a/src/plugins/priority/multifactor/priority_multifactor.c +++ b/src/plugins/priority/multifactor/priority_multifactor.c @@ -749,6 +749,12 @@ static void *_decay_thread(void *no_data) slurm_mutex_lock(&assoc_mgr_association_lock); while(assoc) { + /* we don't want to make the + root assoc responsible for + keeping track of time + */ + if (assoc == assoc_mgr_root_assoc) + break; assoc->grp_used_wall += run_decay; assoc->usage_raw += (long double)real_decay; @@ -762,12 +768,6 @@ static void *_decay_thread(void *no_data) assoc->grp_used_wall); assoc = assoc->parent_assoc_ptr; - /* we don't want to make the - root assoc responsible for - keeping track of time - */ - if (assoc == assoc_mgr_root_assoc) - break; } slurm_mutex_unlock(&assoc_mgr_association_lock); } diff --git a/src/plugins/select/bluegene/plugin/bluegene.c b/src/plugins/select/bluegene/plugin/bluegene.c index 2b75c5c8284..334789b6d79 100644 --- a/src/plugins/select/bluegene/plugin/bluegene.c +++ b/src/plugins/select/bluegene/plugin/bluegene.c @@ -1246,7 +1246,7 @@ extern int validate_current_blocks(char *dir) return SLURM_SUCCESS; last_config_update = time(NULL); - curr_block_list = list_create(NULL); + curr_block_list = list_create(destroy_bg_record); found_block_list = list_create(NULL); //#if 0 /* Check to see if the configs we have are correct */ -- GitLab