diff --git a/src/common/pool_map.c b/src/common/pool_map.c index 1712f398dcb..24c9268eb3b 100644 --- a/src/common/pool_map.c +++ b/src/common/pool_map.c @@ -1999,6 +1999,7 @@ pool_map_find_domain(struct pool_map *map, pool_comp_type_t type, uint32_t id, struct pool_domain *tmp; int i; + D_ASSERT(map != NULL); if (pool_map_empty(map)) { D_ERROR("Uninitialized pool map\n"); return 0; @@ -2051,6 +2052,7 @@ int pool_map_find_ranks(struct pool_map *map, uint32_t id, struct pool_domain **domain_pp) { + D_ASSERT(map != NULL); return pool_map_find_domain(map, PO_COMP_TP_RANK, id, domain_pp); } @@ -2109,6 +2111,7 @@ pool_map_find_dom_by_rank(struct pool_map *map, uint32_t rank) int doms_cnt; int i; + D_ASSERT(map != NULL); doms_cnt = pool_map_find_ranks(map, PO_COMP_ID_ALL, &doms); if (doms_cnt <= 0) return NULL; @@ -2191,6 +2194,7 @@ pool_map_find_target_by_rank_idx(struct pool_map *map, uint32_t rank, { struct pool_domain *dom; + D_ASSERT(map != NULL); dom = pool_map_find_dom_by_rank(map, rank); if (dom == NULL) return 0; diff --git a/src/pool/srv_util.c b/src/pool/srv_util.c index 042488bc4f9..d95ebfba470 100644 --- a/src/pool/srv_util.c +++ b/src/pool/srv_util.c @@ -1532,6 +1532,13 @@ check_pool_targets(uuid_t pool_id, int *tgt_ids, int tgt_cnt, bool reint, nr_downout = nr_down = nr_upin = nr_up = 0; ABT_rwlock_rdlock(pool->sp_lock); + + if (pool->sp_map == NULL) { + D_ERROR(DF_UUID ": Pool map not populated\n", DP_UUID(pool_id)); + rc = -DER_UNINIT; + goto done; + } + for (i = 0; i < tgt_cnt; i++) { nr = pool_map_find_target_by_rank_idx(pool->sp_map, rank, tgt_ids[i], &target); @@ -1560,7 +1567,7 @@ check_pool_targets(uuid_t pool_id, int *tgt_ids, int tgt_cnt, bool reint, break; } } - +done: if (pool->sp_iv_ns != NULL) { *pl_rank = pool->sp_iv_ns->iv_master_rank; } else {