From 620c09f7d6511c3ee5e2bcdd95e11c85b1cc8d97 Mon Sep 17 00:00:00 2001 From: Danny Auble <da@llnl.gov> Date: Mon, 8 Dec 2008 23:57:31 +0000 Subject: [PATCH] changed the unpack_error: code in the slurm_protocol_pack to call the slurm_free_* functions in the _defs.c instead of local frees. --- slurm/slurm.h.in | 5 +- src/common/slurm_protocol_defs.c | 2 + src/common/slurm_protocol_pack.c | 284 ++++++++----------------------- 3 files changed, 80 insertions(+), 211 deletions(-) diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in index b7234cb92b3..27ae440d8f7 100644 --- a/slurm/slurm.h.in +++ b/slurm/slurm.h.in @@ -597,13 +597,15 @@ typedef struct job_descriptor { /* For submit, allocate, and update requests */ /* End of Blue Gene specific values */ select_jobinfo_t select_jobinfo; /* opaque data type, - * SLURM internal use only */ + * SLURM internal use only */ + char *wckey; /* wckey for job */ } job_desc_msg_t; typedef struct job_info { char *account; /* charge to specified account */ char *alloc_node; /* local node making resource alloc */ uint32_t alloc_sid; /* local sid making resource alloc */ + uint32_t assoc_id; /* association id for job */ uint16_t batch_flag; /* 1 if batch: queued job with script */ char *command; /* command to be executed */ char *comment; /* arbitrary comment (used by Moab scheduler) */ @@ -671,6 +673,7 @@ typedef struct job_info { uint16_t max_cores; /* maximum number of cores per cpu */ uint16_t min_threads; /* minimum number of threads per core */ uint16_t max_threads; /* maximum number of threads per core */ + char *wckey; /* wckey for job */ } job_info_t; typedef struct job_info_msg { diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c index 7df6439b61f..c5b78140814 100644 --- a/src/common/slurm_protocol_defs.c +++ b/src/common/slurm_protocol_defs.c @@ -315,6 +315,7 @@ void slurm_free_job_desc_msg(job_desc_msg_t * msg) xfree(msg->resp_host); xfree(msg->script); select_g_free_jobinfo(&msg->select_jobinfo); + xfree(msg->wckey); xfree(msg->work_dir); xfree(msg); } @@ -382,6 +383,7 @@ void slurm_free_job_info_members(job_info_t * job) xfree(job->req_node_inx); select_g_free_jobinfo(&job->select_jobinfo); xfree(job->state_desc); + xfree(job->wckey); xfree(job->work_dir); } } diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c index bf40888c0bb..c7d70d27f69 100644 --- a/src/common/slurm_protocol_pack.c +++ b/src/common/slurm_protocol_pack.c @@ -1360,10 +1360,7 @@ _unpack_update_node_msg(update_node_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(tmp_ptr->node_names); - xfree(tmp_ptr->features); - xfree(tmp_ptr->reason); - xfree(tmp_ptr); + slurm_free_update_node_msg(tmp_ptr); *msg = NULL; return SLURM_ERROR; } @@ -1445,13 +1442,7 @@ _unpack_node_registration_status_msg(slurm_node_registration_status_msg_t return SLURM_SUCCESS; unpack_error: - xfree(node_reg_ptr->arch); - xfree(node_reg_ptr->job_id); - xfree(node_reg_ptr->node_name); - xfree(node_reg_ptr->os); - xfree(node_reg_ptr->step_id); - switch_g_free_node_info(&node_reg_ptr->switch_nodeinfo); - xfree(node_reg_ptr); + slurm_free_node_registration_status_msg(node_reg_ptr); *msg = NULL; return SLURM_ERROR; } @@ -1518,11 +1509,7 @@ _unpack_resource_allocation_response_msg(resource_allocation_response_msg_t return SLURM_SUCCESS; unpack_error: - select_g_free_jobinfo(&tmp_ptr->select_jobinfo); - xfree(tmp_ptr->node_list); - xfree(tmp_ptr->cpus_per_node); - xfree(tmp_ptr->cpu_count_reps); - xfree(tmp_ptr); + slurm_free_resource_allocation_response_msg(tmp_ptr); *msg = NULL; return SLURM_ERROR; } @@ -1596,11 +1583,7 @@ _unpack_job_alloc_info_response_msg(job_alloc_info_response_msg_t ** msg, return SLURM_SUCCESS; unpack_error: - select_g_free_jobinfo(&tmp_ptr->select_jobinfo); - xfree(tmp_ptr->node_list); - xfree(tmp_ptr->cpus_per_node); - xfree(tmp_ptr->cpu_count_reps); - xfree(tmp_ptr); + slurm_free_job_alloc_info_response_msg(tmp_ptr); *msg = NULL; return SLURM_ERROR; } @@ -1632,7 +1615,7 @@ _unpack_submit_response_msg(submit_response_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(tmp_ptr); + slurm_free_submit_response_response_msg(tmp_ptr); *msg = NULL; return SLURM_ERROR; } @@ -1662,8 +1645,7 @@ _unpack_node_info_msg(node_info_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(node); - xfree(*msg); + slurm_free_node_info_msg(*msg); *msg = NULL; return SLURM_ERROR; } @@ -1759,10 +1741,7 @@ _unpack_update_partition_msg(update_part_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(tmp_ptr->name); - xfree(tmp_ptr->nodes); - xfree(tmp_ptr->allow_groups); - xfree(tmp_ptr); + slurm_free_update_part_msg(tmp_ptr); *msg = NULL; return SLURM_ERROR; } @@ -1791,8 +1770,7 @@ _unpack_delete_partition_msg(delete_part_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(tmp_ptr->name); - xfree(tmp_ptr); + slurm_free_delete_part_msg(tmp_ptr); *msg = NULL; return SLURM_ERROR; } @@ -1867,11 +1845,7 @@ _unpack_job_step_create_request_msg(job_step_create_request_msg_t ** msg, return SLURM_SUCCESS; unpack_error: - xfree(tmp_ptr->host); - xfree(tmp_ptr->name); - xfree(tmp_ptr->network); - xfree(tmp_ptr->node_list); - xfree(tmp_ptr); + slurm_free_job_step_create_request_msg(tmp_ptr); *msg = NULL; return SLURM_ERROR; } @@ -1912,8 +1886,7 @@ _unpack_kill_job_msg(kill_job_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(tmp_ptr->nodes); - xfree(tmp_ptr); + slurm_free_kill_job_msg(tmp_ptr); *msg = NULL; return SLURM_ERROR; } @@ -1945,7 +1918,7 @@ _unpack_signal_job_msg(signal_job_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(tmp_ptr); + slurm_free_signal_job_msg(tmp_ptr); *msg = NULL; return SLURM_ERROR; } @@ -1982,9 +1955,7 @@ _unpack_epilog_comp_msg(epilog_complete_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(tmp_ptr->node_name); - switch_g_free_node_info(&tmp_ptr->switch_nodeinfo); - xfree(tmp_ptr); + slurm_free_epilog_complete_msg(tmp_ptr); *msg = NULL; return SLURM_ERROR; } @@ -2013,7 +1984,7 @@ _unpack_update_job_time_msg(job_time_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(tmp_ptr); + slurm_free_update_job_time_msg(tmp_ptr); *msg = NULL; return SLURM_ERROR; } @@ -2058,7 +2029,7 @@ _unpack_job_step_create_response_msg(job_step_create_response_msg_t ** msg, return SLURM_SUCCESS; unpack_error: - xfree(tmp_ptr); + slurm_free_job_step_create_response_msg(tmp_ptr); *msg = NULL; return SLURM_ERROR; } @@ -2096,8 +2067,7 @@ _unpack_partition_info_msg(partition_info_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(partition); - xfree(*msg); + slurm_free_partition_info_msg(*msg); *msg = NULL; return SLURM_ERROR; } @@ -2257,8 +2227,7 @@ _unpack_job_step_info_response_msg(job_step_info_response_msg_t return SLURM_SUCCESS; unpack_error: - xfree(step); - xfree(*msg); + slurm_free_job_step_info_response_msg(*msg); *msg = NULL; return SLURM_ERROR; } @@ -2293,8 +2262,7 @@ _unpack_job_info_msg(job_info_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(job); - xfree(*msg); + slurm_free_job_info_msg(*msg); *msg = NULL; return SLURM_ERROR; } @@ -2321,6 +2289,7 @@ _unpack_job_info_members(job_info_t * job, Buf buffer) safe_unpack16(&job->state_reason, buffer); safe_unpack32(&job->alloc_sid, buffer); + safe_unpack32(&job->assoc_id, buffer); safe_unpack32(&job->time_limit, buffer); safe_unpack_time(&job->submit_time, buffer); @@ -2413,31 +2382,12 @@ _unpack_job_info_members(job_info_t * job, Buf buffer) job->ntasks_per_core = mc_ptr->ntasks_per_core; xfree(mc_ptr); } - + safe_unpackstr_xmalloc(&job->wckey, &uint32_tmp, buffer); + return SLURM_SUCCESS; unpack_error: - xfree(job->nodes); - xfree(job->partition); - xfree(job->account); - xfree(job->network); - xfree(job->comment); - xfree(job->dependency); - xfree(job->cpus_per_node); - xfree(job->cpu_count_reps); - xfree(job->name); - xfree(job->alloc_node); - xfree(job->node_inx); - select_g_free_jobinfo(&job->select_jobinfo); - xfree(job->features); - xfree(job->work_dir); - xfree(job->command); - xfree(job->licenses); - xfree(job->req_nodes); - xfree(job->req_node_inx); - xfree(job->exc_nodes); - xfree(job->exc_node_inx); - + slurm_free_job_info_members(job); return SLURM_ERROR; } @@ -2585,6 +2535,7 @@ _pack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t * build_ptr, Buf buffer) packstr(build_ptr->task_plugin, buffer); pack16(build_ptr->task_plugin_param, buffer); packstr(build_ptr->tmp_fs, buffer); + pack16(build_ptr->track_wckey, buffer); pack16(build_ptr->tree_width, buffer); pack16(build_ptr->use_pam, buffer); @@ -2780,6 +2731,7 @@ _unpack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t ** safe_unpackstr_xmalloc(&build_ptr->task_plugin, &uint32_tmp, buffer); safe_unpack16(&build_ptr->task_plugin_param, buffer); safe_unpackstr_xmalloc(&build_ptr->tmp_fs, &uint32_tmp, buffer); + safe_unpack16(&build_ptr->track_wckey, buffer); safe_unpack16(&build_ptr->tree_width, buffer); safe_unpack16(&build_ptr->use_pam, buffer); @@ -2792,67 +2744,7 @@ _unpack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t ** return SLURM_SUCCESS; unpack_error: - xfree(build_ptr->accounting_storage_host); - xfree(build_ptr->accounting_storage_loc); - xfree(build_ptr->accounting_storage_pass); - xfree(build_ptr->accounting_storage_type); - xfree(build_ptr->accounting_storage_user); - xfree(build_ptr->authtype); - xfree(build_ptr->backup_addr); - xfree(build_ptr->backup_controller); - xfree(build_ptr->checkpoint_type); - xfree(build_ptr->cluster_name); - xfree(build_ptr->control_addr); - xfree(build_ptr->control_machine); - xfree(build_ptr->crypto_type); - xfree(build_ptr->epilog); - xfree(build_ptr->health_check_program); - xfree(build_ptr->job_acct_gather_type); - xfree(build_ptr->job_comp_loc); - xfree(build_ptr->job_comp_pass); - xfree(build_ptr->job_comp_type); - xfree(build_ptr->job_comp_user); - xfree(build_ptr->job_credential_private_key); - xfree(build_ptr->job_credential_public_certificate); - xfree(build_ptr->health_check_program); - xfree(build_ptr->licenses); - xfree(build_ptr->mail_prog); - xfree(build_ptr->mpi_default); - xfree(build_ptr->node_prefix); - xfree(build_ptr->plugindir); - xfree(build_ptr->plugstack); - xfree(build_ptr->priority_type); - xfree(build_ptr->proctrack_type); - xfree(build_ptr->prolog); - xfree(build_ptr->prolog_slurmctld); - xfree(build_ptr->propagate_rlimits); - xfree(build_ptr->propagate_rlimits_except); - xfree(build_ptr->resume_program); - xfree(build_ptr->salloc_default_command); - xfree(build_ptr->sched_params); - xfree(build_ptr->schedtype); - xfree(build_ptr->select_type); - xfree(build_ptr->slurm_conf); - xfree(build_ptr->slurm_user_name); - xfree(build_ptr->slurmctld_logfile); - xfree(build_ptr->slurmctld_pidfile); - xfree(build_ptr->slurmd_logfile); - xfree(build_ptr->slurmd_pidfile); - xfree(build_ptr->slurmd_spooldir); - xfree(build_ptr->srun_epilog); - xfree(build_ptr->srun_prolog); - xfree(build_ptr->state_save_location); - xfree(build_ptr->suspend_exc_nodes); - xfree(build_ptr->suspend_exc_parts); - xfree(build_ptr->suspend_program); - xfree(build_ptr->switch_type); - xfree(build_ptr->node_prefix); - xfree(build_ptr->task_epilog); - xfree(build_ptr->task_prolog); - xfree(build_ptr->task_plugin); - xfree(build_ptr->tmp_fs); - xfree(build_ptr->unkillable_program); - xfree(build_ptr); + slurm_free_ctl_conf(build_ptr); *build_buffer_ptr = NULL; return SLURM_ERROR; } @@ -2942,6 +2834,8 @@ _pack_job_desc_msg(job_desc_msg_t * job_desc_ptr, Buf buffer) packstr(job_desc_ptr->licenses, buffer); pack16(job_desc_ptr->mail_type, buffer); packstr(job_desc_ptr->mail_user, buffer); + packstr(job_desc_ptr->wckey, buffer); + if(job_desc_ptr->select_jobinfo) select_g_pack_jobinfo(job_desc_ptr->select_jobinfo, buffer); else if (select_g_alloc_jobinfo(&job_desc_ptr->select_jobinfo) @@ -3079,10 +2973,15 @@ _unpack_job_desc_msg(job_desc_msg_t ** job_desc_buffer_ptr, Buf buffer) safe_unpackstr_xmalloc(&job_desc_ptr->licenses, &uint32_tmp, buffer); safe_unpack16(&job_desc_ptr->mail_type, buffer); safe_unpackstr_xmalloc(&job_desc_ptr->mail_user, &uint32_tmp, buffer); + safe_unpackstr_xmalloc(&job_desc_ptr->wckey, &uint32_tmp, buffer); if (select_g_alloc_jobinfo (&job_desc_ptr->select_jobinfo) || select_g_unpack_jobinfo(job_desc_ptr->select_jobinfo, buffer)) goto unpack_error; + + /* These are set so we don't confuse them later for what is + * set in the select_jobinfo structure. + */ #if SYSTEM_DIMENSIONS job_desc_ptr->geometry[0] = (uint16_t)NO_VAL; #endif @@ -3096,28 +2995,7 @@ _unpack_job_desc_msg(job_desc_msg_t ** job_desc_buffer_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(job_desc_ptr->account); - xfree(job_desc_ptr->argv); - xfree(job_desc_ptr->comment); - xfree(job_desc_ptr->cpu_bind); - xfree(job_desc_ptr->dependency); - xfree(job_desc_ptr->environment); - xfree(job_desc_ptr->err); - xfree(job_desc_ptr->exc_nodes); - xfree(job_desc_ptr->features); - xfree(job_desc_ptr->in); - xfree(job_desc_ptr->licenses); - xfree(job_desc_ptr->mail_user); - xfree(job_desc_ptr->mem_bind); - xfree(job_desc_ptr->name); - xfree(job_desc_ptr->network); - xfree(job_desc_ptr->out); - xfree(job_desc_ptr->partition); - xfree(job_desc_ptr->req_nodes); - xfree(job_desc_ptr->script); - xfree(job_desc_ptr->work_dir); - select_g_free_jobinfo(&job_desc_ptr->select_jobinfo); - xfree(job_desc_ptr); + slurm_free_job_desc_msg(job_desc_ptr); *job_desc_buffer_ptr = NULL; return SLURM_ERROR; } @@ -3145,7 +3023,7 @@ _unpack_job_alloc_info_msg(job_alloc_info_msg_t ** return SLURM_SUCCESS; unpack_error: - xfree(job_desc_ptr); + slurm_free_job_alloc_info_msg(job_desc_ptr); *job_desc_buffer_ptr = NULL; return SLURM_ERROR; } @@ -3170,7 +3048,7 @@ _unpack_last_update_msg(last_update_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(last_update_msg); + slurm_free_last_update_msg(last_update_msg); *msg = NULL; return SLURM_ERROR; } @@ -3195,7 +3073,7 @@ _unpack_return_code_msg(return_code_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(return_code_msg); + slurm_free_return_code_msg(return_code_msg); *msg = NULL; return SLURM_ERROR; } @@ -3338,7 +3216,7 @@ _unpack_task_exit_msg(task_exit_msg_t ** msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(msg); + slurm_free_task_exit_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -3374,15 +3252,12 @@ _unpack_launch_tasks_response_msg(launch_tasks_response_msg_t ** goto unpack_error; safe_unpack32_array(&msg->task_ids, &uint32_tmp, buffer); if (msg->count_of_pids != uint32_tmp) - goto unpack_error2; + goto unpack_error; return SLURM_SUCCESS; -unpack_error2: - xfree(msg->count_of_pids); unpack_error: - xfree(msg->node_name); - xfree(msg); + slurm_free_launch_tasks_response_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -3608,7 +3483,7 @@ _unpack_cancel_tasks_msg(kill_tasks_msg_t ** msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(msg); + slurm_free_kill_tasks_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -3637,7 +3512,7 @@ _unpack_checkpoint_tasks_msg(checkpoint_tasks_msg_t ** msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(msg); + slurm_free_checkpoint_tasks_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -3660,7 +3535,7 @@ _unpack_shutdown_msg(shutdown_msg_t ** msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(msg); + slurm_free_shutdown_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -3701,7 +3576,7 @@ _unpack_job_step_kill_msg(job_step_kill_msg_t ** msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(msg); + slurm_free_job_step_kill_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -3728,7 +3603,7 @@ _unpack_complete_job_allocation_msg( return SLURM_SUCCESS; unpack_error: - xfree(msg); + slurm_free_complete_job_allocation_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -3760,7 +3635,7 @@ _unpack_complete_batch_script_msg( return SLURM_SUCCESS; unpack_error: - xfree(msg); + slurm_free_complete_batch_script_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -3794,7 +3669,7 @@ _unpack_stat_jobacct_msg(stat_jobacct_msg_t ** msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(msg); + slurm_free_stat_jobacct_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; @@ -3822,7 +3697,7 @@ _unpack_job_step_id_msg(job_step_id_msg_t ** msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(msg); + slurm_free_job_step_id_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; @@ -3859,7 +3734,7 @@ _unpack_step_complete_msg(step_complete_msg_t ** msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(msg); + slurm_free_step_complete_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -3885,7 +3760,7 @@ _unpack_job_info_request_msg(job_info_request_msg_t** msg, return SLURM_SUCCESS; unpack_error: - xfree(job_info); + slurm_free_job_info_request_msg(job_info); *msg = NULL; return SLURM_ERROR; } @@ -3909,7 +3784,7 @@ _unpack_node_select_info_req_msg(node_info_select_request_msg_t **msg, return SLURM_SUCCESS; unpack_error: - xfree(node_sel_info); + slurm_free_node_select_msg(node_sel_info); *msg = NULL; return SLURM_ERROR; } @@ -3938,7 +3813,7 @@ _unpack_job_step_info_req_msg(job_step_info_request_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(job_step_info); + slurm_free_job_step_info_request_msg(job_step_info); *msg = NULL; return SLURM_ERROR; } @@ -3963,7 +3838,7 @@ _unpack_node_info_request_msg(node_info_request_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(node_info); + slurm_free_node_info_request_msg(node_info); *msg = NULL; return SLURM_ERROR; } @@ -3988,7 +3863,7 @@ _unpack_part_info_request_msg(part_info_request_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(part_info); + slurm_free_part_info_request_msg(part_info); *msg = NULL; return SLURM_ERROR; } @@ -4199,7 +4074,7 @@ _unpack_job_id_request_msg(job_id_request_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(tmp_ptr); + slurm_free_job_id_request_msg(tmp_ptr); *msg = NULL; return SLURM_ERROR; } @@ -4229,7 +4104,7 @@ _unpack_job_id_response_msg(job_id_response_msg_t ** msg, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(tmp_ptr); + slurm_free_job_id_response_msg(tmp_ptr); *msg = NULL; return SLURM_ERROR; } @@ -4259,8 +4134,8 @@ _unpack_srun_exec_msg(srun_exec_msg_t ** msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: + slurm_free_srun_exec_msg(msg); *msg_ptr = NULL; - xfree(msg); return SLURM_ERROR; } @@ -4287,8 +4162,8 @@ _unpack_srun_ping_msg(srun_ping_msg_t ** msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: + slurm_free_srun_ping_msg(msg); *msg_ptr = NULL; - xfree(msg); return SLURM_ERROR; } @@ -4319,9 +4194,8 @@ _unpack_srun_node_fail_msg(srun_node_fail_msg_t ** msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: + slurm_free_srun_node_fail_msg(msg); *msg_ptr = NULL; - xfree( msg->nodelist ); - xfree( msg ); return SLURM_ERROR; } @@ -4347,7 +4221,7 @@ _unpack_job_ready_msg(job_id_msg_t ** msg_ptr, Buf buffer) unpack_error: *msg_ptr = NULL; - xfree(msg); + slurm_free_job_id_msg(msg); return SLURM_ERROR; } @@ -4377,7 +4251,7 @@ _unpack_srun_timeout_msg(srun_timeout_msg_t ** msg_ptr, Buf buffer) unpack_error: *msg_ptr = NULL; - xfree(msg); + slurm_free_srun_timeout_msg(msg); return SLURM_ERROR; } @@ -4405,6 +4279,8 @@ _unpack_srun_user_msg(srun_user_msg_t ** msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: + slurm_free_srun_user_msg(msg_user); + *msg_ptr = NULL; return SLURM_ERROR; } @@ -4430,7 +4306,7 @@ static int _unpack_suspend_msg(suspend_msg_t **msg_ptr, Buf buffer) unpack_error: *msg_ptr = NULL; - xfree(msg); + slurm_free_suspend_msg(msg); return SLURM_ERROR; } @@ -4463,7 +4339,7 @@ _unpack_checkpoint_msg(checkpoint_msg_t **msg_ptr, Buf buffer) unpack_error: *msg_ptr = NULL; - xfree(msg); + slurm_free_checkpoint_msg(msg); return SLURM_ERROR; } @@ -4498,8 +4374,7 @@ _unpack_checkpoint_comp(checkpoint_comp_msg_t **msg_ptr, Buf buffer) unpack_error: *msg_ptr = NULL; - xfree (msg->error_msg); - xfree (msg); + slurm_free_checkpoint_comp_msg(msg); return SLURM_ERROR; } @@ -4536,8 +4411,7 @@ _unpack_checkpoint_task_comp(checkpoint_task_comp_msg_t **msg_ptr, Buf buffer) unpack_error: *msg_ptr = NULL; - xfree (msg->error_msg); - xfree (msg); + slurm_free_checkpoint_task_comp_msg(msg); return SLURM_ERROR; } @@ -4568,7 +4442,7 @@ _unpack_checkpoint_resp_msg(checkpoint_resp_msg_t **msg_ptr, Buf buffer) unpack_error: *msg_ptr = NULL; - xfree(msg); + slurm_free_checkpoint_resp_msg(msg); return SLURM_ERROR; } @@ -4623,9 +4497,7 @@ static int _unpack_file_bcast(file_bcast_msg_t ** msg_ptr , Buf buffer ) return SLURM_SUCCESS; unpack_error: - xfree( msg -> fname ); - xfree( msg -> block ); - xfree( msg ); + slurm_free_file_bcast_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -4810,7 +4682,7 @@ static int _unpack_kvs_get(kvs_get_msg_t **msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(msg); + slurm_free_get_kvs_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -4872,7 +4744,7 @@ unpack_multi_core_data (multi_core_data_t **mc_ptr, Buf buffer) *mc_ptr = multi_core; return SLURM_SUCCESS; - unpack_error: +unpack_error: xfree(multi_core); return SLURM_ERROR; } @@ -4931,11 +4803,7 @@ static int _unpack_slurmd_status(slurmd_status_t **msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(msg->hostname); - xfree(msg->slurmd_logfile); - xfree(msg->step_list); - xfree(msg->version); - xfree(msg); + slurm_free_slurmd_status(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -4966,8 +4834,7 @@ static int _unpack_job_notify(job_notify_msg_t **msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(msg->message); - xfree(msg); + slurm_free_job_notify_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -4990,7 +4857,7 @@ _unpack_set_debug_level_msg(set_debug_level_msg_t ** msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(msg); + slurm_free_set_debug_level_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -5019,8 +4886,7 @@ _unpack_will_run_response_msg(will_run_response_msg_t ** msg_ptr, Buf buffer) return SLURM_SUCCESS; unpack_error: - xfree(msg->node_list); - xfree(msg); + slurm_free_will_run_response_msg(msg); *msg_ptr = NULL; return SLURM_ERROR; } @@ -5073,9 +4939,7 @@ static int _unpack_accounting_update_msg(accounting_update_msg_t **msg, return SLURM_SUCCESS; unpack_error: - if(msg_ptr->update_list) - list_destroy(msg_ptr->update_list); - xfree(msg_ptr); + slurm_free_accounting_update_msg(msg_ptr); *msg = NULL; return SLURM_ERROR; } -- GitLab