Detecting Transactional Bugs in Database Engines via Graph-Based Oracle Construction
summary
A tool called TxCheck builds statement-dependency graphs via SQL-level instrumentation and uses transactional oracle construction to generate semantically equivalent, reordered test cases; the approach is proven correct for producing equivalent executions and catches divergence as a correctness failure rather than a crash. It runs against TiDB, MySQL and MariaDB, finds 56 unique bugs (52 confirmed, 18 fixed), and surfaces concrete failures such as a MySQL update-with-subselect misbehavior.
AI-written summary · about
chapters (6)
- 0:00Introduction to transactions
- 2:16Challenges in database testing
- 3:41Semantic preserving reordering
- 5:58Methodology overview
- 7:31Dependency graph analysis
- 8:30Results and conclusion
related talks
14mChecking Observational Correctness of Database Systems
14mDetecting Logic Bugs in Database Engines via Equivalent Expression Transformation
10mHow to test software without writing tests
36mSQLancer: Automatically Finding Bugs in Database Management Systems
15mFinding Bugs in Database Systems via Query Partitioning
55mMuch ado about testing
15mDDLumos: Understanding and Detecting Atomic DDL Bugs in DBMSs
20mGraphiti: Bridging Graph and Relational Database Queries
