diff --git a/src/mgmt/srv_system.c b/src/mgmt/srv_system.c index 38e4f0e702c..64d162e9416 100644 --- a/src/mgmt/srv_system.c +++ b/src/mgmt/srv_system.c @@ -1,5 +1,6 @@ /* * (C) Copyright 2019-2022 Intel Corporation. + * (C) Copyright 2026 Hewlett Packard Enterprise Development LP * * SPDX-License-Identifier: BSD-2-Clause-Patent */ @@ -221,10 +222,21 @@ map_update_bcast(crt_context_t ctx, struct mgmt_svc *svc, uint32_t map_version, struct mgmt_tgt_map_update_out *out; crt_opcode_t opc; crt_rpc_t *rpc; + int i; int rc; D_DEBUG(DB_MGMT, "enter: version=%u nservers=%d\n", map_version, nservers); + for (i = 0; i < nservers; i++) { + const char *uri = ""; + + if (servers[i].se_uri != NULL) + uri = servers[i].se_uri; + + D_DEBUG(DB_MGMT, "map[%d/%d]: rank=%u inc=%lu uri=%s flags=%u nctxs=%u\n", i + 1, + nservers, servers[i].se_rank, (unsigned long)servers[i].se_incarnation, uri, + (unsigned int)servers[i].se_flags, (unsigned int)servers[i].se_nctxs); + } opc = DAOS_RPC_OPCODE(MGMT_TGT_MAP_UPDATE, DAOS_MGMT_MODULE, DAOS_MGMT_VERSION); @@ -254,6 +266,11 @@ map_update_bcast(crt_context_t ctx, struct mgmt_svc *svc, uint32_t map_version, out_rpc: crt_req_decref(rpc); out: + if (rc != 0) { + D_WARN("map update bcast failed for version=%u nservers=%d: " DF_RC "\n", + map_version, nservers, DP_RC(rc)); + } + D_DEBUG(DB_MGMT, "leave: version=%u nservers=%d: "DF_RC"\n", map_version, nservers, DP_RC(rc)); return rc; diff --git a/src/mgmt/srv_target.c b/src/mgmt/srv_target.c index bf5f373aaf6..e286e22728c 100644 --- a/src/mgmt/srv_target.c +++ b/src/mgmt/srv_target.c @@ -1540,6 +1540,39 @@ int ds_mgmt_tgt_map_update_pre_forward(crt_rpc_t *rpc, void *arg) { struct mgmt_tgt_map_update_in *in = crt_req_get(rpc); + d_rank_t self_rank = dss_self_rank(); + uint64_t self_inc = 0; + uint64_t map_inc = 0; + const char *map_uri = ""; + char *self_uri = NULL; + int self_inc_rc; + int self_uri_rc; + bool map_has_self = false; + uint32_t i; + + for (i = 0; i < in->tm_servers.ca_count; i++) { + if (in->tm_servers.ca_arrays[i].se_rank == self_rank) { + map_has_self = true; + map_inc = in->tm_servers.ca_arrays[i].se_incarnation; + if (in->tm_servers.ca_arrays[i].se_uri != NULL) + map_uri = in->tm_servers.ca_arrays[i].se_uri; + break; + } + } + + self_inc_rc = crt_self_incarnation_get(&self_inc); + self_uri_rc = crt_self_uri_get(0 /* tag */, &self_uri); + + D_DEBUG(DB_MGMT, + "map update recv: version=%u self_rank=%u self_inc=%lu self_uri=%s " + "map_has_self=%d map_inc=%lu map_uri=%s nservers=" DF_U64 + " self_inc_rc=%d self_uri_rc=%d\n", + in->tm_map_version, self_rank, (unsigned long)self_inc, + self_uri_rc == 0 ? self_uri : "", map_has_self, (unsigned long)map_inc, + map_uri, in->tm_servers.ca_count, self_inc_rc, self_uri_rc); + + if (self_uri_rc == 0) + D_FREE(self_uri); return ds_mgmt_group_update(in->tm_servers.ca_arrays, in->tm_servers.ca_count, in->tm_map_version);