diff --git a/src/slurmctld/port_mgr.c b/src/slurmctld/port_mgr.c index d3ab1f220817ebab75d4920ae5163b161929a767..cb228ebfe83920d0618de0fc34a3ed79f4c3a71a 100644 --- a/src/slurmctld/port_mgr.c +++ b/src/slurmctld/port_mgr.c @@ -168,6 +168,8 @@ extern int reserve_port_config(char *mpi_params) if (tmp_p == NULL) { if (port_resv_table) { info("Clearing port reservations"); + for (i=0; i<port_resv_cnt; i++) + bit_free(port_resv_table[i]); xfree(port_resv_table); port_resv_cnt = 0; port_resv_min = port_resv_max = 0; @@ -188,8 +190,10 @@ extern int reserve_port_config(char *mpi_params) return SLURM_ERROR; } - if ((p_min == port_resv_min) && (p_max == port_resv_max)) + if ((p_min == port_resv_min) && (p_max == port_resv_max)) { + _dump_resv_port_info(); return SLURM_SUCCESS; /* No change */ + } port_resv_min = p_min; port_resv_max = p_max; diff --git a/src/slurmctld/step_mgr.c b/src/slurmctld/step_mgr.c index d36d5fb8750c5957141d6c51b549ee66400adaaa..9ea9b6d2643bb074805d8937d71c9a307791ea52 100644 --- a/src/slurmctld/step_mgr.c +++ b/src/slurmctld/step_mgr.c @@ -1333,6 +1333,7 @@ step_create(job_step_create_request_msg_t *step_specs, (uint16_t)cpus_per_task, step_specs->task_dist, step_specs->plane_size); + xfree(step_node_list); if (!step_ptr->step_layout) { delete_step_record (job_ptr, step_ptr->step_id); return SLURM_ERROR; @@ -1369,10 +1370,10 @@ step_create(job_step_create_request_msg_t *step_specs, return ESLURM_INTERCONNECT_FAILURE; } step_alloc_lps(step_ptr); - } + } else + xfree(step_node_list); if (checkpoint_alloc_jobinfo (&step_ptr->check_job) < 0) fatal ("step_create: checkpoint_alloc_jobinfo error"); - xfree(step_node_list); *new_step_record = step_ptr; jobacct_storage_g_step_start(acct_db_conn, step_ptr); return SLURM_SUCCESS;