Commit ee30eba
committed
Add AFL fuzz target for prefix filter correctness
Oracle-based differential fuzzer: runs the same AFL-derived operation
sequence against two trees (one with prefix extractor, one without) and
asserts all reads return identical results. Any mismatch = wrongly
applied filter = silent data loss, saved by AFL as a crash for replay.
Covers all identified correctness dimensions:
- 9 extractor variants × 3 bpk levels × 3 filter partitioning policies
- MVCC snapshot reads at older seqnos while writes continue
- Weak tombstones and their compaction GC interaction
- Extractor changes on reopen (prefix_filter_allowed compatibility)
- Partitioned filter forced on all levels (the path that had the panic)
- Bidirectional iterator stepping (PrefixPingPong)
- Unbounded iteration (FirstKV/LastKV)
- Clustered keys (first byte 0..7, len 1..9) for realistic prefix
distribution with natural in-domain / out-of-domain key mix1 parent c5c0cea commit ee30eba
3 files changed
+643
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
0 commit comments