From f2721d09ced614a1d1e2fa0e00796a3a5c6d9813 Mon Sep 17 00:00:00 2001 From: Ken Cain Date: Tue, 2 Jun 2026 08:48:29 -0400 Subject: [PATCH] DAOS-18945 container: bypass space check in flags tx update (#18365) When a pool's RDB has reached capacity usage to the point where further rdb_tx_update() can return -DER_NOSPACE, a container destroy operation (though epxecting to free RDB space) may itself encounter -DER_NOSPACE. It is possibly due to cont_destroy() first performing rdb_tx_update() before a second phase cont_destroy_post() performs (space-relieving) operations rdb_tx_delete() and rdb_tx_destroy_kvs(). With this change, convert the container_flags update in cont_destroy() to a "critical" tx update, bypassing RDB free space checks. Features: container ObjectMetadata Signed-off-by: Kenneth Cain --- src/container/srv_container.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/container/srv_container.c b/src/container/srv_container.c index 5261c998d47..42070da7bec 100644 --- a/src/container/srv_container.c +++ b/src/container/srv_container.c @@ -1637,7 +1637,7 @@ cont_destroy(struct rdb_tx *tx, struct ds_pool_hdl *pool_hdl, struct cont *cont, container_flags |= CONTAINER_F_DESTROYING; d_iov_set(&val, &container_flags, sizeof(container_flags)); - rc = rdb_tx_update(tx, &cont->c_prop, &ds_cont_prop_ghce, &val); + rc = rdb_tx_update_critical(tx, &cont->c_prop, &ds_cont_prop_ghce, &val); out_prop: daos_prop_free(prop);