From 6df2053d84f5641bbbf1dea9bddd4a89463a6d93 Mon Sep 17 00:00:00 2001 From: Li Wei Date: Thu, 18 Apr 2024 10:40:45 +0900 Subject: [PATCH] DAOS-15672 rebuild: Fix pool destroy hangs See the Jira ticket for the long story. When releasing resources, for instance, for stopping a pool, we should attempt on all targets, because the latest version of the pool map may differ from the version used to acquire the resources. (And in some cases, we no longer have the original pool map version in the context.) Signed-off-by: Li Wei Required-githooks: true --- src/container/srv_target.c | 3 +-- src/object/srv_obj_migrate.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/container/srv_target.c b/src/container/srv_target.c index a6c52f87d7b..b66ac8fad24 100644 --- a/src/container/srv_target.c +++ b/src/container/srv_target.c @@ -1823,8 +1823,7 @@ ds_cont_tgt_close(uuid_t pool_uuid, uuid_t hdl_uuid) uuid_copy(arg.uuid, hdl_uuid); - return ds_pool_thread_collective(pool_uuid, PO_COMP_ST_NEW | PO_COMP_ST_DOWN | - PO_COMP_ST_DOWNOUT, cont_close_one_hdl, &arg, 0); + return ds_pool_thread_collective(pool_uuid, 0, cont_close_one_hdl, &arg, 0); } struct xstream_cont_query { diff --git a/src/object/srv_obj_migrate.c b/src/object/srv_obj_migrate.c index 77e727e7cb9..ab7b7eaed68 100644 --- a/src/object/srv_obj_migrate.c +++ b/src/object/srv_obj_migrate.c @@ -3162,8 +3162,7 @@ ds_migrate_stop(struct ds_pool *pool, unsigned int version, unsigned int generat arg.version = version; arg.generation = generation; - rc = ds_pool_thread_collective(pool->sp_uuid, PO_COMP_ST_NEW | PO_COMP_ST_DOWN | - PO_COMP_ST_DOWNOUT, migrate_fini_one_ult, &arg, 0); + rc = ds_pool_thread_collective(pool->sp_uuid, 0, migrate_fini_one_ult, &arg, 0); if (rc) D_ERROR(DF_UUID" migrate stop: %d\n", DP_UUID(pool->sp_uuid), rc);