From 7c22fbe0d511c5108d48ec16392e6cfa37edbc5d Mon Sep 17 00:00:00 2001 From: Xingbo Wang Date: Fri, 3 Oct 2025 00:01:02 -0700 Subject: [PATCH] Disable a param combo in crash test to fix a data race (#14023) Summary: When inplace_update_support and memtable_veirfy_per_key_checksum_on_seek are enabled at the same time, it would cause data race in memtable. inplace_update_support allows key/value pair in place update in memtable. memtable_veirfy_per_key_checksum_on_seek performs key checksum verification during seek. It is possible that one thread is updating the key/value pair in place, while another thread is reading the key/value pair for checksum verification during seek. Therefore, there these 2 configurations could not be enabled at the same time Pull Request resolved: https://github.com/facebook/rocksdb/pull/14023 Test Plan: local stress test run stops reporting race condition Reviewed By: anand1976 Differential Revision: D83812322 Pulled By: xingbowang fbshipit-source-id: 6cb9f0f3faa8deba97305bfe87266f2fe78e0501 --- tools/db_crashtest.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/db_crashtest.py b/tools/db_crashtest.py index e739611c06..40fb17a5f2 100644 --- a/tools/db_crashtest.py +++ b/tools/db_crashtest.py @@ -1197,6 +1197,12 @@ def finalize_and_sanitize(src_params): dest_params["prefixpercent"] = 0 dest_params["read_fault_one_in"] = 0 dest_params["memtable_prefix_bloom_size_ratio"] = 0 + + # inplace update and key checksum verification during seek would cause race condition + # Therefore, when inplace_update_support is enabled, disable memtable_veirfy_per_key_checksum_on_seek + if dest_params["inplace_update_support"] == 1: + dest_params["memtable_veirfy_per_key_checksum_on_seek"] = 0 + return dest_params