Skip to content

Commit f2721d0

Browse files
committed
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 <kenneth.cain@hpe.com>
1 parent ab8193f commit f2721d0

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

src/container/srv_container.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1637,7 +1637,7 @@ cont_destroy(struct rdb_tx *tx, struct ds_pool_hdl *pool_hdl, struct cont *cont,
16371637

16381638
container_flags |= CONTAINER_F_DESTROYING;
16391639
d_iov_set(&val, &container_flags, sizeof(container_flags));
1640-
rc = rdb_tx_update(tx, &cont->c_prop, &ds_cont_prop_ghce, &val);
1640+
rc = rdb_tx_update_critical(tx, &cont->c_prop, &ds_cont_prop_ghce, &val);
16411641

16421642
out_prop:
16431643
daos_prop_free(prop);

0 commit comments

Comments
 (0)