diff --git a/src/plugins/select/bluegene/plugin/bg_job_run.c b/src/plugins/select/bluegene/plugin/bg_job_run.c index b76a00ef619dd00af141d6d77c132a72f3cbaf47..6ec2d6f6a50866d53b6458d0136f09366d4f5ee1 100644 --- a/src/plugins/select/bluegene/plugin/bg_job_run.c +++ b/src/plugins/select/bluegene/plugin/bg_job_run.c @@ -532,6 +532,10 @@ static void *_block_agent(void *args) } slurm_mutex_lock(&agent_cnt_mutex); agent_cnt--; + if (agent_cnt == 0) { + list_destroy(bg_update_list); + bg_update_list = NULL; + } slurm_mutex_unlock(&agent_cnt_mutex); return NULL; } @@ -825,6 +829,7 @@ extern int sync_jobs(List job_list) list_iterator_destroy(job_iterator); } else { error("sync_jobs: no job_list"); + list_destroy(block_list); return SLURM_ERROR; } /* Insure that all other blocks are free of users */ @@ -843,6 +848,8 @@ extern int sync_jobs(List job_list) list_iterator_destroy(block_iterator); list_destroy(block_list); } else { + /* this should never happen, + * vestigial logic */ error("sync_jobs: no block_list"); return SLURM_ERROR; }