Finding Cross-rule Optimization Bugs in Datalog Engines
summary
Automated blackbox testing uses Incremental Rule Evaluation (IRE) to build Datalog programs rule by rule, evaluate each new rule in isolation as a reference, then compare to the engine’s optimized run to flag discrepancies. Implemented as Deopt, it runs against Soufflé, CozoDB, μZ, and DDlog and finds 30 bugs including 13 logic bugs, catches all queryFuzz bugs and five others queryFuzz misses, and produces 1.17×–31.02× more nonempty 60‑rule tests than naive random generation.
AI-written summary · about
chapters (9)
- 0:00Cross-rule optimization bugs
- 3:15Logic bugs in Datalog engines
- 5:00Incremental rule evaluation
- 6:44Generating test cases
- 9:59Rule dependencies and stratification
- 12:33Evaluation results and bugs
- 14:46Incremental vs random testing
- 15:51Conclusion and future work
- 16:14Q&A
related talks
14mDetecting Logic Bugs in Database Engines via Equivalent Expression Transformation
42mSurprise yourself with Property Based Testing
55mMuch ado about testing
15mFinding Bugs in Database Systems via Query Partitioning
18mPreview: Verification (Correctness & Debugging)
36mSQLancer: Automatically Finding Bugs in Database Management Systems
19mPinolo: Detecting Logical Bugs in Database Management Systems with Approximate...
11mEncarsia: Evaluating CPU Fuzzers via Automatic Bug Injection
