From 4a93517f54fe42fd48606b4b018525fad76829ca Mon Sep 17 00:00:00 2001 From: Morris Jette <jette@schedmd.com> Date: Fri, 22 Jan 2016 14:46:12 -0800 Subject: [PATCH] Fix some errors reported by Coverity --- src/common/knl.c | 1 + src/common/read_config.c | 24 +-- .../burst_buffer/common/burst_buffer_common.c | 10 +- .../burst_buffer/cray/burst_buffer_cray.c | 159 +++++++++--------- src/scancel/scancel.c | 14 +- src/scontrol/create_res.c | 2 +- src/slurmctld/partition_mgr.c | 3 +- 7 files changed, 108 insertions(+), 105 deletions(-) diff --git a/src/common/knl.c b/src/common/knl.c index d5eb4cc55d2..a6afdaedb0c 100644 --- a/src/common/knl.c +++ b/src/common/knl.c @@ -61,6 +61,7 @@ #include "slurm/slurm.h" #include "src/common/knl.h" +#include "src/common/macros.h" #include "src/common/parse_config.h" #include "src/common/plugin.h" #include "src/common/read_config.h" diff --git a/src/common/read_config.c b/src/common/read_config.c index 22af2aac800..89f4ccd371f 100644 --- a/src/common/read_config.c +++ b/src/common/read_config.c @@ -2673,7 +2673,7 @@ static int _config_is_storage(s_p_hashtbl_t *hashtbl, char *name) conf_ptr->plugindir = xstrdup(default_plugin_path); /* unlock conf_lock and set as initialized before accessing it */ conf_initialized = true; - pthread_mutex_unlock(&conf_lock); + slurm_mutex_unlock(&conf_lock); db_conn = acct_storage_g_get_connection(NULL, 0, false, NULL); if (db_conn == NULL) goto end; /* plugin will out error itself */ @@ -2692,7 +2692,7 @@ static int _config_is_storage(s_p_hashtbl_t *hashtbl, char *name) end: /* restore status quo now */ - pthread_mutex_lock(&conf_lock); + slurm_mutex_lock(&conf_lock); conf_initialized = false; xfree(cluster); xfree(conf_ptr->accounting_storage_type); @@ -2775,10 +2775,10 @@ _destroy_slurm_conf(void) extern int slurm_conf_init(const char *file_name) { - pthread_mutex_lock(&conf_lock); + slurm_mutex_lock(&conf_lock); if (conf_initialized) { - pthread_mutex_unlock(&conf_lock); + slurm_mutex_unlock(&conf_lock); return SLURM_ERROR; } @@ -2787,7 +2787,7 @@ slurm_conf_init(const char *file_name) fatal("Unable to process configuration file"); conf_initialized = true; - pthread_mutex_unlock(&conf_lock); + slurm_mutex_unlock(&conf_lock); return SLURM_SUCCESS; } @@ -2830,9 +2830,9 @@ slurm_conf_reinit(const char *file_name) { int rc; - pthread_mutex_lock(&conf_lock); + slurm_mutex_lock(&conf_lock); rc = _internal_reinit(file_name); - pthread_mutex_unlock(&conf_lock); + slurm_mutex_unlock(&conf_lock); return rc; } @@ -2855,16 +2855,16 @@ slurm_conf_install_fork_handlers(void) extern int slurm_conf_destroy(void) { - pthread_mutex_lock(&conf_lock); + slurm_mutex_lock(&conf_lock); if (!conf_initialized) { - pthread_mutex_unlock(&conf_lock); + slurm_mutex_unlock(&conf_lock); return SLURM_SUCCESS; } _destroy_slurm_conf(); - pthread_mutex_unlock(&conf_lock); + slurm_mutex_unlock(&conf_lock); return SLURM_SUCCESS; } @@ -2872,7 +2872,7 @@ slurm_conf_destroy(void) extern slurm_ctl_conf_t * slurm_conf_lock(void) { - pthread_mutex_lock(&conf_lock); + slurm_mutex_lock(&conf_lock); if (!conf_initialized) { if (_init_slurm_conf(NULL) != SLURM_SUCCESS) { @@ -2893,7 +2893,7 @@ slurm_conf_lock(void) extern void slurm_conf_unlock(void) { - pthread_mutex_unlock(&conf_lock); + slurm_mutex_unlock(&conf_lock); } /* Normalize supplied debug level to be in range per log.h definitions */ diff --git a/src/plugins/burst_buffer/common/burst_buffer_common.c b/src/plugins/burst_buffer/common/burst_buffer_common.c index 73e49565136..edd0789559f 100644 --- a/src/plugins/burst_buffer/common/burst_buffer_common.c +++ b/src/plugins/burst_buffer/common/burst_buffer_common.c @@ -917,7 +917,7 @@ extern void bb_sleep(bb_state_t *state_ptr, int add_secs) ts.tv_sec = tv.tv_sec + add_secs; ts.tv_nsec = tv.tv_usec * 1000; - pthread_mutex_lock(&state_ptr->term_mutex); + slurm_mutex_lock(&state_ptr->term_mutex); if (!state_ptr->term_flag) { pthread_cond_timedwait(&state_ptr->term_cond, &state_ptr->term_mutex, &ts); @@ -1074,7 +1074,7 @@ extern int bb_proc_count(void) { int cnt; - pthread_mutex_lock(&proc_count_mutex); + slurm_mutex_lock(&proc_count_mutex); cnt = child_proc_count; pthread_mutex_unlock(&proc_count_mutex); @@ -1125,7 +1125,7 @@ extern char *bb_run_script(char *script_type, char *script_path, return resp; } } - pthread_mutex_lock(&proc_count_mutex); + slurm_mutex_lock(&proc_count_mutex); child_proc_count++; pthread_mutex_unlock(&proc_count_mutex); if ((cpid = fork()) == 0) { @@ -1162,7 +1162,7 @@ extern char *bb_run_script(char *script_type, char *script_path, close(pfd[1]); } error("%s: fork(): %m", __func__); - pthread_mutex_lock(&proc_count_mutex); + slurm_mutex_lock(&proc_count_mutex); child_proc_count--; pthread_mutex_unlock(&proc_count_mutex); } else if (max_wait != -1) { @@ -1224,7 +1224,7 @@ extern char *bb_run_script(char *script_type, char *script_path, killpg(cpid, SIGKILL); waitpid(cpid, status, 0); close(pfd[0]); - pthread_mutex_lock(&proc_count_mutex); + slurm_mutex_lock(&proc_count_mutex); child_proc_count--; pthread_mutex_unlock(&proc_count_mutex); } else { diff --git a/src/plugins/burst_buffer/cray/burst_buffer_cray.c b/src/plugins/burst_buffer/cray/burst_buffer_cray.c index 6cf553747e8..67b857bb696 100644 --- a/src/plugins/burst_buffer/cray/burst_buffer_cray.c +++ b/src/plugins/burst_buffer/cray/burst_buffer_cray.c @@ -57,6 +57,7 @@ #include "src/common/assoc_mgr.h" #include "src/common/fd.h" #include "src/common/list.h" +#include "src/common/macros.h" #include "src/common/pack.h" #include "src/common/parse_config.h" #include "src/common/slurm_protocol_api.h" @@ -411,9 +412,9 @@ static void *_bb_agent(void *args) if (!bb_state.term_flag) { _load_state(false); /* Has own locking */ lock_slurmctld(job_write_lock); - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); _timeout_bb_rec(); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); unlock_slurmctld(job_write_lock); } _save_bb_state(); /* Has own locks excluding file write */ @@ -724,7 +725,7 @@ static void _save_bb_state(void) count_offset = get_buf_offset(buffer); pack32(rec_count, buffer); if (bb_state.bb_ahash) { - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); for (i = 0; i < BB_HASH_SIZE; i++) { bb_alloc = bb_state.bb_ahash[i]; while (bb_alloc) { @@ -746,7 +747,7 @@ static void _save_bb_state(void) } } save_time = time(NULL); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); offset = get_buf_offset(buffer); set_buf_offset(buffer, count_offset); pack32(rec_count, buffer); @@ -1090,12 +1091,12 @@ static void _load_state(bool init_config) NO_LOCK, NO_LOCK, NO_LOCK }; bool found_pool; - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if (bb_state.bb_config.other_timeout) timeout = bb_state.bb_config.other_timeout * 1000; else timeout = DEFAULT_OTHER_TIMEOUT * 1000; - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); /* * Load the pools information @@ -1107,7 +1108,7 @@ static void _load_state(bool init_config) return; } - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if (!bb_state.bb_config.default_pool && (num_pools > 0)) { info("%s: Setting DefaultPool to %s", __func__, pools[0].id); bb_state.bb_config.default_pool = xstrdup(pools[0].id); @@ -1163,7 +1164,7 @@ static void _load_state(bool init_config) used_space *= pools[i].granularity; pool_ptr->used_space = MAX(pool_ptr->used_space, used_space); } - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); _bb_free_pools(pools, num_pools); /* @@ -1175,7 +1176,7 @@ static void _load_state(bool init_config) num_instances = 0; /* Redundant, but fixes CLANG bug */ } sessions = _bb_get_sessions(&num_sessions, &bb_state, timeout); - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); assoc_mgr_lock(&assoc_locks); bb_state.last_load_time = time(NULL); for (i = 0; i < num_sessions; i++) { @@ -1222,7 +1223,7 @@ static void _load_state(bool init_config) bb_post_persist_create(NULL, bb_alloc, &bb_state); } assoc_mgr_unlock(&assoc_locks); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); _bb_free_sessions(sessions, num_sessions); _bb_free_instances(instances, num_instances); @@ -1461,7 +1462,7 @@ static void *_start_stage_in(void *x) __func__, stage_args->job_id, TIME_STR); _log_script_argv(setup_argv, resp_msg); lock_slurmctld(job_read_lock); - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); bb_limit_rem(stage_args->user_id, stage_args->bb_size, stage_args->pool, &bb_state); if (!WIFEXITED(status) || (WEXITSTATUS(status) != 0)) { @@ -1486,7 +1487,7 @@ static void *_start_stage_in(void *x) bb_job->state = BB_STATE_STAGING_IN; } } - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); unlock_slurmctld(job_read_lock); if (rc == SLURM_SUCCESS) { @@ -1518,7 +1519,7 @@ static void *_start_stage_in(void *x) error("%s: unable to find job record for job %u", __func__, stage_args->job_id); } else if (rc == SLURM_SUCCESS) { - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); bb_job = bb_job_find(&bb_state, stage_args->job_id); if (bb_job) bb_job->state = BB_STATE_STAGED_IN; @@ -1540,7 +1541,7 @@ static void *_start_stage_in(void *x) __func__, stage_args->job_id); } } - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); } else { xfree(job_ptr->state_desc); job_ptr->state_reason = FAIL_BURST_BUFFER_OP; @@ -1672,11 +1673,11 @@ static void *_start_stage_out(void *x) error("%s: unable to find job record for job %u", __func__, stage_args->job_id); } else { - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); bb_job = _get_bb_job(job_ptr); if (bb_job) bb_job->state = BB_STATE_STAGING_OUT; - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); } unlock_slurmctld(job_write_lock); @@ -1718,7 +1719,7 @@ static void *_start_stage_out(void *x) xstrfmtcat(job_ptr->state_desc, "%s: %s: %s", plugin_type, op, resp_msg); } - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); bb_job = _get_bb_job(job_ptr); if (bb_job) bb_job->state = BB_STATE_TEARDOWN; @@ -1756,7 +1757,7 @@ static void *_start_stage_out(void *x) _queue_teardown(stage_args->job_id, stage_args->user_id, false); } - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); } unlock_slurmctld(job_write_lock); @@ -1876,7 +1877,7 @@ static void *_start_teardown(void *x) hurry); } else { lock_slurmctld(job_write_lock); - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); job_ptr = find_job_record(teardown_args->job_id); _purge_bb_files(teardown_args->job_id, job_ptr); if (job_ptr) { @@ -1903,7 +1904,7 @@ static void *_start_teardown(void *x) } } - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); unlock_slurmctld(job_write_lock); } @@ -2552,7 +2553,7 @@ extern int init(void) pthread_attr_t attr; pthread_mutex_init(&bb_state.bb_mutex, NULL); - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); bb_load_config(&bb_state, (char *)plugin_type); /* Removes "const" */ _test_config(); if (bb_state.bb_config.debug_flag) @@ -2569,7 +2570,7 @@ extern int init(void) usleep(100000); } slurm_attr_destroy(&attr); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return SLURM_SUCCESS; } @@ -2592,25 +2593,25 @@ extern int fini(void) usleep(100000); } - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if (bb_state.bb_config.debug_flag) info("%s: %s", plugin_type, __func__); - pthread_mutex_lock(&bb_state.term_mutex); + slurm_mutex_lock(&bb_state.term_mutex); bb_state.term_flag = true; pthread_cond_signal(&bb_state.term_cond); - pthread_mutex_unlock(&bb_state.term_mutex); + slurm_mutex_unlock(&bb_state.term_mutex); if (bb_state.bb_thread) { - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); pthread_join(bb_state.bb_thread, NULL); - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); bb_state.bb_thread = 0; } bb_clear_config(&bb_state.bb_config, true); bb_clear_cache(&bb_state); xfree(state_save_loc); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return SLURM_SUCCESS; } @@ -2644,9 +2645,9 @@ extern uint64_t bb_p_get_system_size(void) { uint64_t size = 0; - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); size = bb_state.total_space / (1024 * 1024); /* bytes to MB */ - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return size; } @@ -2669,10 +2670,10 @@ extern int bb_p_load_state(bool init_config) if (bb_state.bb_config.debug_flag) debug("%s: %s", plugin_type, __func__); _load_state(init_config); /* Has own locking */ - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); bb_set_tres_pos(&bb_state); _purge_vestigial_bufs(); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); _save_bb_state(); /* Has own locks excluding file write */ @@ -2689,7 +2690,7 @@ extern int bb_p_reconfig(void) char *old_default_pool; int i; - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if (bb_state.bb_config.debug_flag) info("%s: %s", plugin_type, __func__); old_default_pool = bb_state.bb_config.default_pool; @@ -2700,7 +2701,7 @@ extern int bb_p_reconfig(void) else xfree(old_default_pool); _test_config(); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); /* reconfig is the place we make sure the pointers are correct */ for (i = 0; i < BB_HASH_SIZE; i++) { @@ -2724,7 +2725,7 @@ extern int bb_p_state_pack(uid_t uid, Buf buffer, uint16_t protocol_version) { uint32_t rec_count = 0; - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); packstr(bb_state.name, buffer); bb_pack_state(&bb_state, buffer, protocol_version); @@ -2737,7 +2738,7 @@ extern int bb_p_state_pack(uid_t uid, Buf buffer, uint16_t protocol_version) debug("%s: %s: record_count:%u", plugin_type, __func__, rec_count); } - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return SLURM_SUCCESS; } @@ -2780,7 +2781,7 @@ extern int bb_p_job_validate(struct job_descriptor *job_desc, return ESLURM_BURST_BUFFER_PERMISSION; } - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if (bb_state.bb_config.allow_users) { bool found_user = false; for (i = 0; bb_state.bb_config.allow_users[i]; i++) { @@ -2813,7 +2814,7 @@ extern int bb_p_job_validate(struct job_descriptor *job_desc, job_desc->tres_req_cnt[bb_state.tres_pos] = bb_size / (1024 * 1024); -fini: pthread_mutex_unlock(&bb_state.bb_mutex); +fini: slurm_mutex_unlock(&bb_state.bb_mutex); return rc; } @@ -2949,15 +2950,15 @@ extern int bb_p_job_validate2(struct job_record *job_ptr, char **err_msg) } /* Initialization */ - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); bb_job = _get_bb_job(job_ptr); if (bb_job == NULL) { - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return rc; } if (!_have_dw_cmd_opts(bb_job)) { - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return rc; } @@ -2970,7 +2971,7 @@ extern int bb_p_job_validate2(struct job_record *job_ptr, char **err_msg) else timeout = DEFAULT_VALIDATE_TIMEOUT * 1000; dw_cli_path = xstrdup(bb_state.bb_config.get_sys_state); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); hash_inx = job_ptr->job_id % 10; xstrfmtcat(hash_dir, "%s/hash.%d", state_save_loc, hash_inx); @@ -3056,9 +3057,9 @@ extern int bb_p_job_validate2(struct job_record *job_ptr, char **err_msg) /* Clean-up */ if (rc != SLURM_SUCCESS) { - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); bb_job_del(&bb_state, job_ptr->job_id); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); } xfree(hash_dir); @@ -3087,12 +3088,12 @@ extern void bb_p_job_set_tres_cnt(struct job_record *job_ptr, __func__, job_ptr->job_id); } - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if ((bb_job = _get_bb_job(job_ptr))) { tres_cnt[bb_state.tres_pos] = bb_job->total_size / (1024 * 1024); } - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); } /* @@ -3112,9 +3113,9 @@ extern time_t bb_p_job_get_est_start(struct job_record *job_ptr) if (job_ptr->array_recs && (job_ptr->array_task_id == NO_VAL)) return est_start; - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if ((bb_job = _get_bb_job(job_ptr)) == NULL) { - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return est_start; } @@ -3141,7 +3142,7 @@ extern time_t bb_p_job_get_est_start(struct job_record *job_ptr) } else { /* Allocation or staging in progress */ est_start++; } - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return est_start; } @@ -3158,7 +3159,7 @@ extern int bb_p_job_try_stage_in(List job_queue) bb_job_t *bb_job; int rc; - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if (bb_state.bb_config.debug_flag) info("%s: %s", plugin_type, __func__); @@ -3205,7 +3206,7 @@ extern int bb_p_job_try_stage_in(List job_queue) break; } list_iterator_destroy(job_iter); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); FREE_NULL_LIST(job_candidates); return SLURM_SUCCESS; @@ -3233,7 +3234,7 @@ extern int bb_p_job_test_stage_in(struct job_record *job_ptr, bool test_only) if (job_ptr->array_recs && (job_ptr->array_task_id == NO_VAL)) return -1; - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if (bb_state.bb_config.debug_flag) { info("%s: %s: %s test_only:%d", plugin_type, __func__, @@ -3263,7 +3264,7 @@ extern int bb_p_job_test_stage_in(struct job_record *job_ptr, bool test_only) rc = -1; } - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return rc; } @@ -3296,7 +3297,7 @@ extern int bb_p_job_begin(struct job_record *job_ptr) return SLURM_ERROR; } - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if (bb_state.bb_config.debug_flag) { info("%s: %s: %s", plugin_type, __func__, @@ -3311,7 +3312,7 @@ extern int bb_p_job_begin(struct job_record *job_ptr) xstrdup("Could not find burst buffer record"); job_ptr->state_reason = FAIL_BURST_BUFFER_OP; _queue_teardown(job_ptr->job_id, job_ptr->user_id, true); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return SLURM_ERROR; } @@ -3322,7 +3323,7 @@ extern int bb_p_job_begin(struct job_record *job_ptr) xstrdup("Error managing persistent burst buffers"); job_ptr->state_reason = FAIL_BURST_BUFFER_OP; _queue_teardown(job_ptr->job_id, job_ptr->user_id, true); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return SLURM_ERROR; } @@ -3331,7 +3332,7 @@ extern int bb_p_job_begin(struct job_record *job_ptr) job_ptr->job_id); xstrfmtcat(client_nodes_file_nid, "%s/client_nids", job_dir); bb_job->state = BB_STATE_RUNNING; - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); if (_write_nid_file(client_nodes_file_nid, job_ptr->job_resrcs->nodes, job_ptr->job_id)) { @@ -3424,7 +3425,7 @@ static void *_start_pre_run(void *x) END_TIMER; lock_slurmctld(job_write_lock); - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); job_ptr = find_job_record(pre_run_args->job_id); if (job_ptr) { jobid2fmt(job_ptr, jobid_buf, sizeof(jobid_buf)); @@ -3454,7 +3455,7 @@ static void *_start_pre_run(void *x) } else { prolog_running_decr(job_ptr); } - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); if (run_kill_job) _kill_job(job_ptr); unlock_slurmctld(job_write_lock); @@ -3479,7 +3480,7 @@ extern int bb_p_job_start_stage_out(struct job_record *job_ptr) (job_ptr->burst_buffer[0] == '\0')) return SLURM_SUCCESS; - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if (bb_state.bb_config.debug_flag) { info("%s: %s: %s", plugin_type, __func__, jobid2fmt(job_ptr, jobid_buf, sizeof(jobid_buf))); @@ -3493,7 +3494,7 @@ extern int bb_p_job_start_stage_out(struct job_record *job_ptr) bb_job->state = BB_STATE_POST_RUN; _queue_stage_out(bb_job); } - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return SLURM_SUCCESS; } @@ -3515,7 +3516,7 @@ extern int bb_p_job_test_post_run(struct job_record *job_ptr) (job_ptr->burst_buffer[0] == '\0')) return 1; - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if (bb_state.bb_config.debug_flag) { info("%s: %s: %s", plugin_type, __func__, jobid2fmt(job_ptr, jobid_buf, sizeof(jobid_buf))); @@ -3535,7 +3536,7 @@ extern int bb_p_job_test_post_run(struct job_record *job_ptr) rc = 0; } } - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return rc; } @@ -3557,7 +3558,7 @@ extern int bb_p_job_test_stage_out(struct job_record *job_ptr) (job_ptr->burst_buffer[0] == '\0')) return 1; - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if (bb_state.bb_config.debug_flag) { info("%s: %s: %s", plugin_type, __func__, jobid2fmt(job_ptr, jobid_buf, sizeof(jobid_buf))); @@ -3577,7 +3578,7 @@ extern int bb_p_job_test_stage_out(struct job_record *job_ptr) rc = 0; } } - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return rc; } @@ -3593,7 +3594,7 @@ extern int bb_p_job_cancel(struct job_record *job_ptr) bb_alloc_t *bb_alloc; char jobid_buf[32]; - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if (bb_state.bb_config.debug_flag) { info("%s: %s: %s", plugin_type, __func__, jobid2fmt(job_ptr, jobid_buf, sizeof(jobid_buf))); @@ -3617,7 +3618,7 @@ extern int bb_p_job_cancel(struct job_record *job_ptr) } _queue_teardown(job_ptr->job_id, job_ptr->user_id, true); } - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); return SLURM_SUCCESS; } @@ -3914,12 +3915,12 @@ static void *_create_persistent(void *x) script_argv[9] = xstrdup("-C"); /* configuration */ xstrfmtcat(script_argv[10], "%s:%"PRIu64"", create_args->pool, create_args->size); - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); if (bb_state.bb_config.other_timeout) timeout = bb_state.bb_config.other_timeout * 1000; else timeout = DEFAULT_OTHER_TIMEOUT * 1000; - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); i = 11; if (create_args->access) { script_argv[i++] = xstrdup("-a"); @@ -3958,11 +3959,11 @@ static void *_create_persistent(void *x) plugin_type, __func__, resp_msg); resp_msg = NULL; } - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); _reset_buf_state(create_args->user_id, create_args->job_id, create_args->name, BB_STATE_PENDING, 0); bb_state.last_update_time = time(NULL); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); unlock_slurmctld(job_write_lock); } else if (resp_msg && strstr(resp_msg, "created")) { assoc_mgr_lock_t assoc_locks = @@ -3974,7 +3975,7 @@ static void *_create_persistent(void *x) error("%s: unable to find job record for job %u", __func__, create_args->job_id); } - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); _reset_buf_state(create_args->user_id, create_args->job_id, create_args->name, BB_STATE_ALLOCATED, create_args->size); @@ -4029,7 +4030,7 @@ static void *_create_persistent(void *x) (void) bb_post_persist_create(job_ptr, bb_alloc, &bb_state); bb_state.last_update_time = time(NULL); assoc_mgr_unlock(&assoc_locks); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); unlock_slurmctld(job_write_lock); } xfree(resp_msg); @@ -4050,7 +4051,7 @@ static void *_destroy_persistent(void *x) uint32_t timeout; DEF_TIMERS; - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); bb_alloc = bb_find_name_rec(destroy_args->name, destroy_args->user_id, &bb_state); if (!bb_alloc) { @@ -4062,7 +4063,7 @@ static void *_destroy_persistent(void *x) timeout = bb_state.bb_config.other_timeout * 1000; else timeout = DEFAULT_OTHER_TIMEOUT * 1000; - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); script_argv = xmalloc(sizeof(char *) * 10); /* NULL terminated */ script_argv[0] = xstrdup("dw_wlm_cli"); @@ -4102,17 +4103,17 @@ static void *_destroy_persistent(void *x) xstrfmtcat(job_ptr->state_desc, "%s: %s: %s", plugin_type, __func__, resp_msg); } - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); _reset_buf_state(destroy_args->user_id, destroy_args->job_id, destroy_args->name, BB_STATE_PENDING, 0); bb_state.last_update_time = time(NULL); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); unlock_slurmctld(job_write_lock); } else { assoc_mgr_lock_t assoc_locks = { READ_LOCK, NO_LOCK, READ_LOCK, NO_LOCK, NO_LOCK, NO_LOCK, NO_LOCK }; - pthread_mutex_lock(&bb_state.bb_mutex); + slurm_mutex_lock(&bb_state.bb_mutex); _reset_buf_state(destroy_args->user_id, destroy_args->job_id, destroy_args->name, BB_STATE_DELETED, 0); @@ -4131,7 +4132,7 @@ static void *_destroy_persistent(void *x) (void) bb_free_alloc_rec(&bb_state, bb_alloc); } bb_state.last_update_time = time(NULL); - pthread_mutex_unlock(&bb_state.bb_mutex); + slurm_mutex_unlock(&bb_state.bb_mutex); } xfree(resp_msg); _free_create_args(destroy_args); diff --git a/src/scancel/scancel.c b/src/scancel/scancel.c index 35d8861d073..74cf09b37e6 100644 --- a/src/scancel/scancel.c +++ b/src/scancel/scancel.c @@ -664,7 +664,7 @@ static void _add_delay(void) static int delay_time = 10000, previous_delay = 0; int my_delay; - pthread_mutex_lock(&max_delay_lock); + slurm_mutex_lock(&max_delay_lock); if (target_resp_time < 0) { target_resp_time = slurm_get_msg_timeout() / 4; target_resp_time = MAX(target_resp_time, 3); @@ -675,7 +675,7 @@ static void _add_delay(void) } if ((++request_count < MAX_THREADS) || (max_resp_time <= target_resp_time)) { - pthread_mutex_unlock(&max_delay_lock); + slurm_mutex_unlock(&max_delay_lock); return; } @@ -683,7 +683,7 @@ static void _add_delay(void) my_delay = MIN((delay_time + previous_delay), 1000000); previous_delay = delay_time; delay_time = my_delay; - pthread_mutex_unlock(&max_delay_lock); + slurm_mutex_unlock(&max_delay_lock); info("%s: adding delay in RPC send of %d usec", __func__, my_delay); usleep(my_delay); @@ -744,9 +744,9 @@ _cancel_job_id (void *ci) error_code = slurm_kill_job2(cancel_info->job_id_str, cancel_info->sig, flags); END_TIMER; - pthread_mutex_lock(&max_delay_lock); + slurm_mutex_lock(&max_delay_lock); max_resp_time = MAX(max_resp_time, DELTA_TIMER); - pthread_mutex_unlock(&max_delay_lock); + slurm_mutex_unlock(&max_delay_lock); if ((error_code == 0) || (errno != ESLURM_TRANSITION_STATE_NO_UPDATE)) @@ -835,9 +835,9 @@ _cancel_step_id (void *ci) error_code = slurm_signal_job_step(job_id, step_id, cancel_info->sig); END_TIMER; - pthread_mutex_lock(&max_delay_lock); + slurm_mutex_lock(&max_delay_lock); max_resp_time = MAX(max_resp_time, DELTA_TIMER); - pthread_mutex_unlock(&max_delay_lock); + slurm_mutex_unlock(&max_delay_lock); if ((error_code == 0) || ((errno != ESLURM_TRANSITION_STATE_NO_UPDATE) && diff --git a/src/scontrol/create_res.c b/src/scontrol/create_res.c index 3afdcb46b05..c62dab0012a 100644 --- a/src/scontrol/create_res.c +++ b/src/scontrol/create_res.c @@ -220,7 +220,7 @@ static int _parse_resv_tres(char *val, resv_desc_msg_t *resv_msg_ptr, compound = strtok_r(token, "=", &value_str); - if (!value_str || !*value_str) { + if (!compound || !value_str || !*value_str) { error("TRES component '%s' has an invalid value '%s'", type, token); goto error; diff --git a/src/slurmctld/partition_mgr.c b/src/slurmctld/partition_mgr.c index 1ce51bf6b4b..44b6515bbc3 100644 --- a/src/slurmctld/partition_mgr.c +++ b/src/slurmctld/partition_mgr.c @@ -1755,7 +1755,8 @@ extern int validate_group(struct part_record *part_ptr, uid_t run_uid) buflen = PW_BUF_SIZE; #if defined(_SC_GETPW_R_SIZE_MAX) ii = sysconf(_SC_GETPW_R_SIZE_MAX); - buflen = MAX(buflen, ii); + if (ii > buflen) + buflen = ii; #endif buf = xmalloc(buflen); while (1) { -- GitLab