Skip to content

Commit 7f9fffc

Browse files
committed
Make prefix filter AFL fuzzer comprehensive
Close the remaining coverage gaps: - MVCC snapshot reads: TakeSnapshot captures the current seqno, then SnapshotGet and SnapshotPrefixScan read at the frozen point while new writes continue. Tests version pinning + prefix filter interaction. - WeakDelete: calls remove_weak() so AFL can explore weak tombstone GC combined with prefix filter correctness during compaction. - Extractor change on reopen: ReopenNewExtractor swaps to a different extractor, testing the prefix_filter_allowed() compatibility gating where old tables keep their original extractor metadata. - Partitioned filter control: FilterPartitioningChoice lets AFL force partitioned filters on all levels (including L0 flushes), not just the default L3+. This is the code path where we found the empty tli_handles panic. - FirstKV / LastKV: unbounded iteration endpoints that should never be affected by prefix filter pruning. - ContainsKey: same point-read path as Get, now explicitly tested. - Empty prefix: ClusteredPrefix length lowered to 0..=3, where len=0 maps to an unbounded full scan.
1 parent 87a6287 commit 7f9fffc

1 file changed

Lines changed: 249 additions & 22 deletions

File tree

0 commit comments

Comments
 (0)