From 9fd711d3ae2a05986702b138974769fdd3cdf2da Mon Sep 17 00:00:00 2001 From: Li Wei Date: Wed, 12 Mar 2025 14:03:31 +0900 Subject: [PATCH] DAOS-17271 pool: Fix handle_event -DER_NONEXISTs When handling the exclusion of multiple ranks, pool_svc_update_map_internal aborts the whole request and returns -DER_NONEXIST if any of the ranks is absent in the pool map. This is correct for the dmg case, but problematic for the handle_event case, where ranks not in the pool map should simply be ignored. Signed-off-by: Li Wei --- src/pool/srv_pool.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pool/srv_pool.c b/src/pool/srv_pool.c index 433850100fe..435ba1f6198 100644 --- a/src/pool/srv_pool.c +++ b/src/pool/srv_pool.c @@ -7033,7 +7033,7 @@ pool_svc_update_map_internal(struct pool_svc *svc, unsigned int opc, bool exclud inval_tgt_addrs); if (rc != 0) goto out_map; - if (inval_tgt_addrs->pta_number > 0) { + if (src == MUS_DMG && inval_tgt_addrs->pta_number > 0) { /* * If any invalid ranks/targets were specified here, * abort the entire request. This will mean the @@ -7604,8 +7604,8 @@ pool_svc_exclude_ranks(struct pool_svc *svc, struct pool_svc_event_set *event_se NULL, NULL, 0, &list, &inval_list_out, &map_version, NULL /* hint */, MUS_SWIM, false); - D_DEBUG(DB_MD, "Exclude pool "DF_UUID"/%u ranks %u: rc %d\n", - DP_UUID(svc->ps_uuid), map_version, n, rc); + D_DEBUG(DB_MD, DF_UUID ": exclude %u ranks: map_version=%u: " DF_RC "\n", + DP_UUID(svc->ps_uuid), n, rc == 0 ? map_version : 0, DP_RC(rc)); pool_target_addr_list_free(&inval_list_out); out: