Detecting Transactional Bugs in Database Engines via Graph-Based Oracle Construction

被引:0
|
作者
Jiang, Zu-Ming [1 ]
Liu, Si [1 ]
Rigger, Manuel [2 ]
Su, Zhendong [1 ]
机构
[1] Swiss Fed Inst Technol, Zurich, Switzerland
[2] Natl Univ Singapore, Singapore, Singapore
来源
PROCEEDINGS OF THE 17TH USENIX SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION, OSDI 2023 | 2023年
关键词
D O I
暂无
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Transactions are an important feature of database management systems (DBMSs), as they provide the ACID guarantees for a sequence of database operations. Consequently, approaches have been proposed to automatically find transactional bugs in DBMSs. However, they cannot handle complex operations and predicates common in real-world database queries, and thus miss bugs. This paper introduces a general, effective technique for finding transactional bugs in DBMSs that supports complex SQL queries and predicates. At the conceptual level, we address the test-oracle problem by constructing semantically-equivalent test cases based on fine-grained statement-level dependencies in transactions. At the technical level, we introduce (1) statement-dependency graphs to describe dependencies among SQL statements in transactions, (2) SQL-level instrumentation to capture possible statement-level dependencies, and (3) transactional oracle construction to generate semantically-equivalent test cases using statement-dependency graphs. We also establish the correctness of our approach in generating semantically-equivalent test cases. We have realized our technique as a tool, TxCheck, and evaluated it on three widely-used and well-tested DBMSs, namely TiDB, MySQL, and MariaDB. In total, TxCheck found 56 unique bugs, 52 of which have been confirmed and 18 already fixed. We believe that TxCheck can help solidify DBMSs' support for transactions thanks to its generality and effectiveness.
引用
收藏
页码:397 / 417
页数:21
相关论文
共 50 条
  • [1] GDsmith: Detecting Bugs in Cypher Graph Database Engines
    Hua, Ziyue
    Lin, Wei
    Ren, Luyao
    Li, Zongyang
    Zhang, Lu
    Jiao, Wenpin
    Xie, Tao
    PROCEEDINGS OF THE 32ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2023, 2023, : 163 - 174
  • [2] Detecting Isolation Bugs via Transaction Oracle Construction
    Dou, Wensheng
    Cui, Ziyu
    Dai, Qianwang
    Song, Jiansen
    Wang, Dong
    Gao, Yu
    Wang, Wei
    Wei, Jun
    Chen, Lei
    Wang, Hanmo
    Zhong, Hua
    Huang, Tao
    2023 IEEE/ACM 45TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ICSE, 2023, : 1123 - 1135
  • [3] Detecting Optimization Bugs in Database Engines via Non-optimizing Reference Engine Construction
    Rigger, Manuel
    Su, Zhendong
    PROCEEDINGS OF THE 28TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '20), 2020, : 1140 - 1152
  • [4] Detecting Logic Bugs in Database Engines via Equivalent Expression Transformation
    Jiang, Zu-Ming
    Su, Zhendong
    PROCEEDINGS OF THE 18TH USENIX SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION, OSDI 2024, 2024, : 821 - 835
  • [5] Detecting Metadata-Related Logic Bugs in Database Systems via Raw Database Construction
    Song, Jiansen
    Dou, Wensheng
    Gao, Yu
    Cui, Ziyu
    Zheng, Yingying
    Wang, Dong
    Wang, Wei
    Wei, Jun
    Huang, Tao
    PROCEEDINGS OF THE VLDB ENDOWMENT, 2024, 17 (08): : 1884 - 1897
  • [6] An Efficient Mining of Transactional Data Using Graph-based Technique
    AlZoubi, Wael Ahmad
    Omar, Khairuddin
    Abu Bakar, Azuraliza
    2011 3RD CONFERENCE ON DATA MINING AND OPTIMIZATION (DMO), 2011, : 74 - 81
  • [7] Testing Graph Database Engines via Query Partitioning
    Kamm, Matteo
    Rigger, Manuel
    Zhang, Chengyu
    Su, Zhendong
    PROCEEDINGS OF THE 32ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2023, 2023, : 140 - 149
  • [8] Graph-based construction of minimal models
    Angiulli, Fabrizio
    Ben-Eliyahu-Zohary, Rachel
    Fassetti, Fabio
    Palopoli, Luigi
    ARTIFICIAL INTELLIGENCE, 2022, 313
  • [9] Graph-Based Translation Via Graph Segmentation
    Li, Liangyou
    Way, Andy
    Liu, Qun
    PROCEEDINGS OF THE 54TH ANNUAL MEETING OF THE ASSOCIATION FOR COMPUTATIONAL LINGUISTICS, VOL 1, 2016, : 97 - 107
  • [10] Detecting Integer Bugs without Oracle Based on Metamorphic Testing Technique
    Huang, Song
    Ji, Mengyu
    Hui, Zhanwei
    Duanmu, Yiting
    FRONTIERS OF MANUFACTURING AND DESIGN SCIENCE II, PTS 1-6, 2012, 121-126 : 1961 - 1965