The test_drop_quarantined_sstables test could fail due to a race between compaction and quarantining of SSTables. If compaction selects an SSTable before it is moved to quarantine, and change_state is called during compaction, the SSTable may already be removed, resulting in a std::filesystem_error due to missing files. This patch resolves the issue by wrapping the quarantine operation inside run_with_compaction_disabled(). This ensures compaction is paused on the compaction group view while SSTables are being quarantined, preventing the race. Additionally, updates the test to quarantine up to 1/5 SSTables instead of one randomly and increases the number of sstables genereted to improve test scenario. Fixes scylladb/scylladb#25487 Closes scylladb/scylladb#25494
92 KiB
92 KiB