USENIX ATC '23 - Pinolo: Detecting Logical Bugs in Database Management Systems with Approximate...

  Рет қаралды 161

USENIX

USENIX

Күн бұрын

USENIX ATC '23 - Pinolo: Detecting Logical Bugs in Database Management Systems with Approximate Query Synthesis
Zongyin Hao, School of Informatics, Xiamen University, Quanfeng Huang, School of Informatics, Xiamen University, Chengpeng Wang, The Hong Kong University of Science and Technology, Jianfeng Wang, University of Southern California, Yushan Zhang, Tencent Inc., Rongxin Wu, School of Informatics, Xiamen University, Charles Zhang, The Hong Kong University of Science and Technology
DBMSs (Database Management Systems) are essential in modern enterprise software. Thus, ensuring the correctness of DBMSs is critical for enterprise applications. Among various kinds of bugs, logical bugs, which make a DBMS return an incorrect result set for a given SQL query, are the most challenging for detection since they typically do not result in apparent manifestations (e.g., crashes) and are likely to go unnoticed by users. The key challenge of detecting logical bugs is the test oracle problem, i.e., how to automatically characterize the expected results for a given query. The state-of-theart approaches focus on generating the equivalent forms of queries via the customized rules, which rewrite a seed query to achieve the equivalent transformation. This dramatically limits the forms of SQL queries fed to the DBMS and thus leads to the under-reporting of many deeply-hidden logical bugs. In this paper, we propose a novel approach, PINOLO, to constructing a test oracle for logical bugs. Instead of generating the equivalent mutants of a seed query, our idea is to synthesize the queries that theoretically should return a superset or a subset of the result set of the seed query, forming the over-approximations or under-approximations of the seed query. A logical bug is detected if the result set returned by our synthesized query does not follow the expected approximation relation. We implemented our idea as a DBMS testing system and evaluated it on four widely-used DBMSs: MySQL, MariaDB, TiDB, and OceanBase. By the time of writing, PINOLO has found 41 unique logical bugs in these DBMSs, 39 of which have been confirmed by developers.
View the full USENIX ATC '23 program at www.usenix.org...

Пікірлер
«Жат бауыр» телехикаясы І 26-бөлім
52:18
Qazaqstan TV / Қазақстан Ұлттық Арнасы
Рет қаралды 434 М.
The FREE AI Mentor | Google AI Studio Explained!
8:41
Gurru Tech Solutions
Рет қаралды 4,2 М.
"Performance Matters" by Emery Berger
42:15
Strange Loop Conference
Рет қаралды 487 М.
Solving one of PostgreSQL's biggest weaknesses.
17:12
Dreams of Code
Рет қаралды 223 М.
Is It Time to Rewrite the Operating System in Rust?
1:09:18
InfoQ
Рет қаралды 303 М.
Learn Database Normalization - 1NF, 2NF, 3NF, 4NF, 5NF
28:34
Decomplexify
Рет қаралды 2,2 МЛН
Database Indexing for Dumb Developers
15:59
Laith Academy
Рет қаралды 84 М.