Skip to content
Snippets Groups Projects
Commit 7c0ba102 authored by Moe Jette's avatar Moe Jette
Browse files

Eliminate a bunch of "lost" memory.

parent 160108d0
No related branches found
No related tags found
No related merge requests found
......@@ -416,7 +416,7 @@ static void *_thread_per_node_rpc(void *args)
int rc;
slurm_fd sockfd;
slurm_msg_t request_msg;
slurm_msg_t response_msg;
slurm_msg_t *response_msg = xmalloc(sizeof(slurm_msg_t));
return_code_msg_t *slurm_rc_msg;
task_info_t *task_ptr = (task_info_t *) args;
thd_t *thread_ptr = task_ptr->thread_struct_ptr;
......@@ -460,7 +460,7 @@ static void *_thread_per_node_rpc(void *args)
}
/* receive message */
if ((msg_size = slurm_receive_msg(sockfd, &response_msg))
if ((msg_size = slurm_receive_msg(sockfd, response_msg))
== SLURM_SOCKET_ERROR) {
error(
"_thread_per_node_rpc/slurm_receive_msg to host %s: %m",
......@@ -481,9 +481,9 @@ static void *_thread_per_node_rpc(void *args)
goto cleanup;
}
switch (response_msg.msg_type) {
switch (response_msg->msg_type) {
case RESPONSE_SLURM_RC:
slurm_rc_msg = (return_code_msg_t *) response_msg.data;
slurm_rc_msg = (return_code_msg_t *) response_msg->data;
rc = slurm_rc_msg->return_code;
slurm_free_return_code_msg(slurm_rc_msg);
if (rc)
......@@ -499,7 +499,7 @@ static void *_thread_per_node_rpc(void *args)
break;
default:
error("_thread_per_node_rpc from host %s, bad msg_type %d",
thread_ptr->node_name, response_msg.msg_type);
thread_ptr->node_name, response_msg->msg_type);
break;
}
......@@ -513,6 +513,7 @@ static void *_thread_per_node_rpc(void *args)
pthread_cond_signal(task_ptr->thread_cond_ptr);
slurm_mutex_unlock(task_ptr->thread_mutex_ptr);
slurm_free_msg(response_msg);
xfree(args);
return (void *) NULL;
}
......
......@@ -700,6 +700,7 @@ static void _slurmctld_req (slurm_msg_t * msg)
break;
case REQUEST_OLD_JOB_RESOURCE_ALLOCATION:
_slurm_rpc_old_job_alloc(msg);
slurm_free_old_job_alloc_msg(msg->data);
break;
case REQUEST_JOB_WILL_RUN:
_slurm_rpc_job_will_run(msg->data);
......@@ -1863,6 +1864,7 @@ static void _slurm_rpc_job_step_create(slurm_msg_t * msg)
resp.data = &job_step_resp;
slurm_send_node_msg(msg->conn_fd, &resp);
xfree(job_step_resp.node_list);
(void) dump_all_job_state(); /* Sets own locks */
}
}
......
......@@ -191,6 +191,7 @@ void delete_job_details(struct job_record *job_entry)
if (job_entry->details->magic != DETAILS_MAGIC)
fatal
("delete_job_details: passed invalid job details pointer");
FREE_NULL(job_entry->details->credential.node_list);
FREE_NULL(job_entry->details->req_nodes);
FREE_NULL_BITMAP(job_entry->details->req_node_bitmap);
FREE_NULL(job_entry->details->features);
......@@ -1923,6 +1924,8 @@ static void _list_delete_job(void *job_entry)
FREE_NULL(job_record_point->nodes);
FREE_NULL_BITMAP(job_record_point->node_bitmap);
FREE_NULL(job_record_point->cpus_per_node);
FREE_NULL(job_record_point->cpu_count_reps);
FREE_NULL(job_record_point->node_addr);
if (job_record_point->step_list) {
delete_all_step_records(job_record_point);
......
......@@ -48,6 +48,11 @@
#include "src/slurmctld/slurmctld.h"
#define BUF_SIZE 1024
#define FREE_NULL(_X) \
do { \
if (_X) xfree (_X); \
_X = NULL; \
} while (0)
static int _build_bitmaps(void);
static int _init_all_slurm_conf(void);
......@@ -295,6 +300,7 @@ static int _parse_node_spec(char *in_line)
error_code = EINVAL;
goto cleanup;
}
FREE_NULL(state);
}
if (node_addr &&
......@@ -339,6 +345,7 @@ static int _parse_node_spec(char *in_line)
xfree(default_config_record.
feature);
default_config_record.feature = feature;
feature = NULL;
}
free(this_node_name);
break;
......@@ -363,6 +370,7 @@ static int _parse_node_spec(char *in_line)
if (config_point->feature)
xfree(config_point->feature);
config_point->feature = feature;
feature = NULL;
}
}
......@@ -405,14 +413,16 @@ static int _parse_node_spec(char *in_line)
}
/* xfree allocated storage */
if (state)
xfree(state);
if (node_addr)
xfree(node_addr);
if (addr_list)
hostlist_destroy(addr_list);
hostlist_destroy(host_list);
return error_code;
cleanup:
if (node_addr)
xfree(node_addr);
if (node_name)
xfree(node_name);
if (feature)
......@@ -487,8 +497,7 @@ static int _parse_part_spec(char *in_line)
error_code = EINVAL;
goto cleanup;
}
xfree(default_str);
default_str = NULL;
FREE_NULL(default_str);
}
if (root_str) {
......@@ -503,8 +512,7 @@ static int _parse_part_spec(char *in_line)
error_code = EINVAL;
goto cleanup;
}
xfree(root_str);
root_str = NULL;
FREE_NULL(root_str);
}
if (shared_str) {
......@@ -521,8 +529,7 @@ static int _parse_part_spec(char *in_line)
error_code = EINVAL;
goto cleanup;
}
xfree(shared_str);
shared_str = NULL;
FREE_NULL(shared_str);
}
if (state_str) {
......@@ -537,8 +544,7 @@ static int _parse_part_spec(char *in_line)
error_code = EINVAL;
goto cleanup;
}
xfree(state_str);
state_str = NULL;
FREE_NULL(state_str);
}
if (strcasecmp(partition_name, "DEFAULT") == 0) {
......@@ -557,11 +563,13 @@ static int _parse_part_spec(char *in_line)
if (default_part.allow_groups)
xfree(default_part.allow_groups);
default_part.allow_groups = allow_groups;
allow_groups = NULL;
}
if (nodes) {
if (default_part.nodes)
xfree(default_part.nodes);
default_part.nodes = nodes;
nodes = NULL;
}
return 0;
}
......@@ -597,6 +605,7 @@ static int _parse_part_spec(char *in_line)
if (part_record_point->allow_groups)
xfree(part_record_point->allow_groups);
part_record_point->allow_groups = allow_groups;
allow_groups = NULL;
}
if (nodes) {
if (part_record_point->nodes)
......@@ -609,6 +618,7 @@ static int _parse_part_spec(char *in_line)
getnodename(nodes, 128);
}
part_record_point->nodes = nodes;
nodes = NULL;
}
xfree(partition_name);
return 0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment