diff --git a/NEWS b/NEWS index 44d1e6f6b076e9856dd695aad2abd06a3af4655b..61942e5ec9517895aa0ce90517a9fd4f7709aeb8 100644 --- a/NEWS +++ b/NEWS @@ -11,6 +11,7 @@ documents those changes that are of interest to users and admins. * Changes in SLURM 2.0.1 ======================== -- Fix, truncate time of start and end for job steps in sacct. + -- initialize all messages to slurmdbd * Changes in SLURM 2.0.0 ======================== diff --git a/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c b/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c index 79e313058e0b89b8f4daf704917575edeb649f90..1c26ffef9cc2b4476ef304fb80d561392ed0aab6 100644 --- a/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c +++ b/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c @@ -176,6 +176,7 @@ extern int acct_storage_p_add_users(void *db_conn, uint32_t uid, List user_list) dbd_list_msg_t get_msg; int rc, resp_code; + memset(&get_msg, 0, sizeof(dbd_list_msg_t)); get_msg.my_list = user_list; req.msg_type = DBD_ADD_USERS; @@ -196,6 +197,7 @@ extern int acct_storage_p_add_coord(void *db_conn, uint32_t uid, dbd_acct_coord_msg_t get_msg; int rc, resp_code; + memset(&get_msg, 0, sizeof(dbd_acct_coord_msg_t)); get_msg.acct_list = acct_list; get_msg.cond = user_cond; @@ -216,6 +218,7 @@ extern int acct_storage_p_add_accts(void *db_conn, uint32_t uid, List acct_list) dbd_list_msg_t get_msg; int rc, resp_code; + memset(&get_msg, 0, sizeof(dbd_list_msg_t)); get_msg.my_list = acct_list; req.msg_type = DBD_ADD_ACCOUNTS; @@ -236,6 +239,7 @@ extern int acct_storage_p_add_clusters(void *db_conn, uint32_t uid, dbd_list_msg_t get_msg; int rc, resp_code; + memset(&get_msg, 0, sizeof(dbd_list_msg_t)); get_msg.my_list = cluster_list; req.msg_type = DBD_ADD_CLUSTERS; @@ -257,6 +261,7 @@ extern int acct_storage_p_add_associations(void *db_conn, uint32_t uid, dbd_list_msg_t get_msg; int rc, resp_code; + memset(&get_msg, 0, sizeof(dbd_list_msg_t)); get_msg.my_list = association_list; req.msg_type = DBD_ADD_ASSOCS; @@ -277,6 +282,7 @@ extern int acct_storage_p_add_qos(void *db_conn, uint32_t uid, dbd_list_msg_t get_msg; int rc, resp_code; + memset(&get_msg, 0, sizeof(dbd_list_msg_t)); get_msg.my_list = qos_list; req.msg_type = DBD_ADD_QOS; @@ -297,6 +303,7 @@ extern int acct_storage_p_add_wckeys(void *db_conn, uint32_t uid, dbd_list_msg_t get_msg; int rc, resp_code; + memset(&get_msg, 0, sizeof(dbd_list_msg_t)); get_msg.my_list = wckey_list; req.msg_type = DBD_ADD_WCKEYS; @@ -317,6 +324,7 @@ extern int acct_storage_p_add_reservation(void *db_conn, dbd_rec_msg_t get_msg; int rc, resp_code; + memset(&get_msg, 0, sizeof(dbd_rec_msg_t)); get_msg.rec = resv; req.msg_type = DBD_ADD_RESV; @@ -341,6 +349,7 @@ extern List acct_storage_p_modify_users(void *db_conn, uint32_t uid, List ret_list = NULL; int rc; + memset(&get_msg, 0, sizeof(dbd_modify_msg_t)); get_msg.cond = user_cond; get_msg.rec = user; @@ -381,6 +390,7 @@ extern List acct_storage_p_modify_accounts(void *db_conn, uint32_t uid, int rc; List ret_list = NULL; + memset(&get_msg, 0, sizeof(dbd_modify_msg_t)); get_msg.cond = acct_cond; get_msg.rec = acct; @@ -422,6 +432,7 @@ extern List acct_storage_p_modify_clusters(void *db_conn, uint32_t uid, dbd_list_msg_t *got_msg; List ret_list = NULL; + memset(&get_msg, 0, sizeof(dbd_modify_msg_t)); get_msg.cond = cluster_cond; get_msg.rec = cluster; @@ -466,6 +477,7 @@ extern List acct_storage_p_modify_associations( List ret_list = NULL; + memset(&get_msg, 0, sizeof(dbd_modify_msg_t)); get_msg.cond = assoc_cond; get_msg.rec = assoc; @@ -506,6 +518,7 @@ extern List acct_storage_p_modify_qos(void *db_conn, uint32_t uid, List ret_list = NULL; int rc; + memset(&get_msg, 0, sizeof(dbd_modify_msg_t)); get_msg.cond = qos_cond; get_msg.rec = qos; @@ -546,6 +559,7 @@ extern List acct_storage_p_modify_wckeys(void *db_conn, uint32_t uid, List ret_list = NULL; int rc; + memset(&get_msg, 0, sizeof(dbd_modify_msg_t)); get_msg.cond = wckey_cond; get_msg.rec = wckey; @@ -583,6 +597,7 @@ extern int acct_storage_p_modify_reservation(void *db_conn, dbd_rec_msg_t get_msg; int rc, resp_code; + memset(&get_msg, 0, sizeof(dbd_rec_msg_t)); get_msg.rec = resv; req.msg_type = DBD_MODIFY_RESV; @@ -607,7 +622,7 @@ extern List acct_storage_p_remove_users(void *db_conn, uint32_t uid, dbd_list_msg_t *got_msg; List ret_list = NULL; - + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); get_msg.cond = user_cond; req.msg_type = DBD_REMOVE_USERS; @@ -648,7 +663,7 @@ extern List acct_storage_p_remove_coord(void *db_conn, uint32_t uid, dbd_list_msg_t *got_msg; List ret_list = NULL; - + memset(&get_msg, 0, sizeof(dbd_acct_coord_msg_t)); get_msg.acct_list = acct_list; get_msg.cond = user_cond; @@ -689,7 +704,7 @@ extern List acct_storage_p_remove_accts(void *db_conn, uint32_t uid, dbd_list_msg_t *got_msg; List ret_list = NULL; - + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); get_msg.cond = acct_cond; req.msg_type = DBD_REMOVE_ACCOUNTS; @@ -729,7 +744,7 @@ extern List acct_storage_p_remove_clusters(void *db_conn, uint32_t uid, dbd_list_msg_t *got_msg; List ret_list = NULL; - + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); get_msg.cond = cluster_cond; req.msg_type = DBD_REMOVE_CLUSTERS; @@ -771,6 +786,7 @@ extern List acct_storage_p_remove_associations( List ret_list = NULL; + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); get_msg.cond = assoc_cond; req.msg_type = DBD_REMOVE_ASSOCS; @@ -812,6 +828,7 @@ extern List acct_storage_p_remove_qos( List ret_list = NULL; + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); get_msg.cond = qos_cond; req.msg_type = DBD_REMOVE_QOS; @@ -853,6 +870,7 @@ extern List acct_storage_p_remove_wckeys( List ret_list = NULL; + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); get_msg.cond = wckey_cond; req.msg_type = DBD_REMOVE_WCKEYS; @@ -889,6 +907,7 @@ extern int acct_storage_p_remove_reservation(void *db_conn, dbd_rec_msg_t get_msg; int rc, resp_code; + memset(&get_msg, 0, sizeof(dbd_rec_msg_t)); get_msg.rec = resv; req.msg_type = DBD_REMOVE_RESV; @@ -912,6 +931,7 @@ extern List acct_storage_p_get_users(void *db_conn, uid_t uid, int rc; List ret_list = NULL; + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); get_msg.cond = user_cond; req.msg_type = DBD_GET_USERS; @@ -950,6 +970,7 @@ extern List acct_storage_p_get_accts(void *db_conn, uid_t uid, int rc; List ret_list = NULL; + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); get_msg.cond = acct_cond; req.msg_type = DBD_GET_ACCOUNTS; @@ -989,6 +1010,7 @@ extern List acct_storage_p_get_clusters(void *db_conn, uid_t uid, int rc; List ret_list = NULL; + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); get_msg.cond = cluster_cond; req.msg_type = DBD_GET_CLUSTERS; @@ -1062,6 +1084,7 @@ extern List acct_storage_p_get_associations(void *db_conn, uid_t uid, int rc; List ret_list = NULL; + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); get_msg.cond = assoc_cond; req.msg_type = DBD_GET_ASSOCS; @@ -1100,6 +1123,7 @@ extern List acct_storage_p_get_qos(void *db_conn, uid_t uid, int rc; List ret_list = NULL; + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); get_msg.cond = qos_cond; req.msg_type = DBD_GET_QOS; @@ -1145,6 +1169,7 @@ extern List acct_storage_p_get_wckeys(void *db_conn, uid_t uid, int rc; List ret_list = NULL; + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); get_msg.cond = wckey_cond; req.msg_type = DBD_GET_WCKEYS; @@ -1190,6 +1215,7 @@ extern List acct_storage_p_get_reservations(void *mysql_conn, uid_t uid, int rc; List ret_list = NULL; + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); get_msg.cond = resv_cond; req.msg_type = DBD_GET_RESVS; @@ -1235,6 +1261,7 @@ extern List acct_storage_p_get_txn(void *db_conn, uid_t uid, int rc; List ret_list = NULL; + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); get_msg.cond = txn_cond; req.msg_type = DBD_GET_TXN; @@ -1276,6 +1303,7 @@ extern int acct_storage_p_get_usage(void *db_conn, uid_t uid, List *my_list = NULL; int rc; + memset(&get_msg, 0, sizeof(dbd_usage_msg_t)); get_msg.rec = in; get_msg.start = start; get_msg.end = end; @@ -1345,6 +1373,7 @@ extern int acct_storage_p_roll_usage(void *db_conn, dbd_roll_usage_msg_t get_msg; int rc, resp_code; + memset(&get_msg, 0, sizeof(dbd_roll_usage_msg_t)); get_msg.end = sent_end; get_msg.start = sent_start; get_msg.archive_data = archive_data; @@ -1383,6 +1412,7 @@ extern int clusteracct_storage_p_node_down(void *db_conn, else my_reason = node_ptr->reason; + memset(&req, 0, sizeof(dbd_node_state_msg_t)); req.cluster_name = cluster; req.cpu_count = cpus; req.hostlist = node_ptr->name; @@ -1398,6 +1428,7 @@ extern int clusteracct_storage_p_node_down(void *db_conn, return SLURM_SUCCESS; } + extern int clusteracct_storage_p_node_up(void *db_conn, char *cluster, struct node_record *node_ptr, @@ -1406,6 +1437,7 @@ extern int clusteracct_storage_p_node_up(void *db_conn, slurmdbd_msg_t msg; dbd_node_state_msg_t req; + memset(&req, 0, sizeof(dbd_node_state_msg_t)); req.cluster_name = cluster; req.hostlist = node_ptr->name; req.new_state = DBD_NODE_STATE_UP; @@ -1431,6 +1463,7 @@ extern int clusteracct_storage_p_cluster_procs(void *db_conn, int rc = SLURM_ERROR; debug2("Sending info for cluster %s", cluster); + memset(&req, 0, sizeof(dbd_cluster_procs_msg_t)); req.cluster_name = cluster; req.cluster_nodes = cluster_nodes; req.proc_count = procs; @@ -1451,6 +1484,8 @@ extern int clusteracct_storage_p_register_ctld(void *db_conn, dbd_register_ctld_msg_t req; info("Registering slurmctld for cluster %s at port %u with slurmdbd.", cluster, port); + memset(&req, 0, sizeof(dbd_register_ctld_msg_t)); + req.cluster_name = cluster; req.port = port; msg.msg_type = DBD_REGISTER_CTLD; @@ -1473,6 +1508,8 @@ extern int clusteracct_storage_p_get_usage( acct_cluster_rec_t *got_rec; int rc; + memset(&get_msg, 0, sizeof(dbd_usage_msg_t)); + get_msg.rec = cluster_rec; get_msg.start = start; get_msg.end = end; @@ -1622,6 +1659,7 @@ extern int jobacct_storage_p_job_complete(void *db_conn, } memset(&req, 0, sizeof(dbd_job_comp_msg_t)); + req.assoc_id = job_ptr->assoc_id; req.db_index = job_ptr->db_index; req.end_time = job_ptr->end_time; @@ -1774,6 +1812,7 @@ extern int jobacct_storage_p_step_complete(void *db_conn, } memset(&req, 0, sizeof(dbd_step_comp_msg_t)); + req.assoc_id = step_ptr->job_ptr->assoc_id; req.db_index = step_ptr->job_ptr->db_index; req.end_time = time(NULL); /* called at step completion */ @@ -1806,6 +1845,8 @@ extern int jobacct_storage_p_suspend(void *db_conn, slurmdbd_msg_t msg; dbd_job_suspend_msg_t req; + memset(&req, 0, sizeof(dbd_job_suspend_msg_t)); + req.assoc_id = job_ptr->assoc_id; req.job_id = job_ptr->job_id; req.db_index = job_ptr->db_index; @@ -1836,6 +1877,8 @@ extern List jobacct_storage_p_get_jobs_cond(void *db_conn, uid_t uid, int rc; List job_list = NULL; + memset(&get_msg, 0, sizeof(dbd_cond_msg_t)); + get_msg.cond = job_cond; req.msg_type = DBD_GET_JOBS_COND; @@ -1876,6 +1919,8 @@ extern int jobacct_storage_p_archive(void *db_conn, dbd_cond_msg_t msg; int rc = SLURM_SUCCESS; + memset(&msg, 0, sizeof(dbd_cond_msg_t)); + msg.cond = arch_cond; req.msg_type = DBD_ARCHIVE_DUMP; @@ -1910,7 +1955,7 @@ extern int jobacct_storage_p_archive_load(void *db_conn, { slurmdbd_msg_t req, resp; int rc = SLURM_SUCCESS; - + req.msg_type = DBD_ARCHIVE_LOAD; req.data = arch_rec; @@ -1949,9 +1994,13 @@ extern int acct_storage_p_flush_jobs_on_cluster(void *db_conn, char *cluster, info("Ending any jobs in accounting that were running when controller " "went down on cluster %s", cluster); + + memset(&req, 0, sizeof(dbd_cluster_procs_msg_t)); + req.cluster_name = cluster; req.proc_count = 0; req.event_time = event_time; + msg.msg_type = DBD_FLUSH_JOBS; msg.data = &req;