From 94f31b96b8d2c47ce6a893313c37e49768fbfff7 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sun, 30 Nov 2025 01:49:49 +0300 Subject: [PATCH] Cancel block changes on write failures/CAS retries (should fix #115) --- src/kv/kv_db.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/kv/kv_db.cpp b/src/kv/kv_db.cpp index 04384fb0..959a136e 100644 --- a/src/kv/kv_db.cpp +++ b/src/kv/kv_db.cpp @@ -1794,6 +1794,7 @@ void kv_op_t::update_block(int path_pos, bool is_delete, const std::string & key { if (res < 0) { + blk->cancel_change(); auto blk_offset = blk->offset; del_block_level(db, blk); db->block_cache.erase(blk_offset); @@ -1926,6 +1927,7 @@ void kv_op_t::update_block(int path_pos, bool is_delete, const std::string & key { if (write_res < 0) { + blk->cancel_change(); auto blk_offset = blk->offset; del_block_level(db, blk); db->block_cache.erase(blk_offset);