Fawkes: Finding Data Durability Bugs in DBMSs via Recovered Data State Verification
Zhiyong Wu, Jie Liang, Jingzhou Fu, Wenqian Deng, Yu Jiang
Abstract
Data durability is a fundamental requirement in DBMSs, ensuring that committed data remains intact despite unexpected faults such as power failures. Despite its critical importance, implementations of durability and recovery mechanisms continue to exhibit flaws, leading to severe issues(e.g., data loss, data inconsistency), which we refer to as Data Durability Bugs (DDBs). However, there is a limited understanding of the characteristics and root causes of DDBs. Furthermore, existing testing methods(e.g., Mallory) are often inadequate for detecting DDBs, particularly those that cause data loss or data inconsistency following DBMS failures.
This paper presents a comprehensive study of 43 DDBs across four widely used DBMSs. It reveals that DDBs primarily manifest as data loss, data inconsistency, log corruption, and system unavailability, often stem from flawed durability and recovery mechanisms, and are typically triggered when faults occur during filesystem or kernel-level calls. Based on these findings, we developed Fawkes, a testing framework to detect DDBs with recovered data state verification. It employs context-aware fault injection to target critical filesystem and kernel-level regions, functionality-guided fault triggering to explore untested paths, and checkpoint-based data graph verification to detect post-crash inconsistencies. We applied Fawkes to eight popular DBMSs and discovered 48 previously unknown DDBs, of which 16 have been fixed and 8 have been assigned CVE identifiers due to the severity.
• Security and privacy → Database and storage security.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 78892201-af57-46c0-a495-6d3a3e674ff9Builds on17
- Testing Database Engines via Pivoted Query SynthesisManuel Rigger, Zhendong SuOSDI 2020 · 150 citations
- Finding bugs in database systems via query partitioningManuel Rigger, Zhendong SuOOPSLA 2020 · 116 citations
- Detecting optimization bugs in database engines via non-optimizing reference engine constructionManuel Rigger, Zhendong SuFSE 2020 · 104 citations
- Automatic Detection of Performance Bugs in Database Systems using Equivalent QueriesXinyu Liu, Qi Zhou, Joy Arulraj, Alessandro OrsoICSE 2022 · 42 citations
- Detecting Logic Bugs of Join Optimizations in DBMSXiu Tang, Sai Wu, Dongxiang Zhang, Feifei Li et al.SIGMOD 2023 · 34 citations
Related papers
- DDLumos: Understanding and Detecting Atomic DDL Bugs in DBMSsZhiyong Wu, Jie Liang, Jingzhou Fu, Wenqian Deng et al.USENIX ATC 2025 · 2 citations
- Understanding Transaction Bugs in Database SystemsZiyu Cui, Wensheng Dou, Yu Gao, Dong Wang et al.ICSE 2024 · 9 citations
- Simple Testing Can Expose Most Critical Transaction Bugs: Understanding and Detecting Write-Specific Serializability Violations in Database SystemsZiyu Cui, Wensheng Dou, Yu Gao, Rui Yang et al.VLDB 2025 · 4 citations
- DepState: Detecting Synchronization Failure Bugs in Distributed Database Management SystemsCundi Fang, Jie Liang, Zhiyong Wu, Jingzhou Fu et al.ISSTA 2025
- When Amnesia Strikes: Understanding and Reproducing Data Loss Bugs with Fault InjectionMaria Ramos, João Azevedo, Kyle Kingsbury, José Pereira et al.VLDB 2024 · 2 citations
