SPLASH 2020
Sun 15 - Sat 21 November 2020 Online Conference
Wed 18 Nov 2020 13:20 - 13:40 at SPLASH-I - W-4 Chair(s): Eric Koskinen, Justin Hsu
Thu 19 Nov 2020 01:20 - 01:40 at SPLASH-I - W-4 Chair(s): Sophia Drossopoulou, Jan Vitek

Logic bugs in Database Management Systems (DBMSs) are bugs that cause an incorrect result for a given query, for example, by omitting a row that should be fetched. These bugs are critical, since they are likely to go unnoticed by users. We propose Query Partitioning, a general and effective approach for finding logic bugs in DBMSs. The core idea of Query Partitioning is to, starting from a given original query, derive multiple, more complex queries (called partitioning queries), each of which computes a partition of the result. The individual partitions are then composed to compute a result set that must be equivalent to the original query's result set. A bug in the DBMS is detected when these result sets differ. Our intuition is that due to the increased complexity, the partitioning queries are more likely to stress the DBMS and trigger a logic bug than the original query. As a concrete instance of a partitioning strategy, we propose Ternary Logic Partitioning (TLP), which is based on the observation that a boolean predicate p can either evaluate to TRUE, FALSE, or NULL. Accordingly, a query can be decomposed into three partitioning queries, each of which computes its result on rows or intermediate results for which p, NOT p, and p IS NULL hold. This technique is versatile, and can be used to test WHERE, GROUP BY, as well as HAVING clauses, aggregate functions, and DISTINCT queries. As part of an extensive testing campaign, we found 175 bugs in widely-used DBMSs such as MySQL, TiDB, SQLite, and CockroachDB, 125 of which have been fixed. Notably, 77 of these were logic bugs, while the remaining were error and crash bugs. We expect that the effectiveness and wide applicability of Query Partitioning will lead to its broad adoption in practice, and the formulation of additional partitioning strategies.

Wed 18 Nov

Displayed time zone: Central Time (US & Canada) change

13:00 - 14:20
W-4OOPSLA at SPLASH-I +12h
Chair(s): Eric Koskinen Stevens Institute of Technology, Justin Hsu University of Wisconsin-Madison, USA
13:00
20m
Talk
Adversarial Examples for Models of Code
OOPSLA
Noam Yefet Technion, Uri Alon Technion, Eran Yahav Technion
Link to publication DOI Pre-print Media Attached
13:20
20m
Talk
Finding Bugs in Database Systems via Query Partitioning
OOPSLA
Manuel Rigger ETH Zurich, Zhendong Su ETH Zurich
Link to publication DOI Pre-print Media Attached
13:40
20m
Talk
Proving Highly-Concurrent Traversals Correct
OOPSLA
Yotam M. Y. Feldman Tel Aviv University, Artem Khyzha Tel Aviv University, Constantin Enea University of Paris / IRIF / CNRS, Adam Morrison Tel Aviv University, Aleksandar Nanevski IMDEA Software Institute, Noam Rinetzky Tel Aviv University, Sharon Shoham Tel Aviv University
Link to publication DOI Media Attached
14:00
20m
Talk
How Do Programmers Use Unsafe Rust?
OOPSLA
Vytautas Astrauskas ETH Zurich, Christoph Matheja ETH Zurich, Federico Poli ETH Zurich, Peter Müller ETH Zurich, Alexander J. Summers University of British Columbia
Link to publication DOI Media Attached

Thu 19 Nov

Displayed time zone: Central Time (US & Canada) change

01:00 - 02:20
W-4OOPSLA at SPLASH-I
Chair(s): Sophia Drossopoulou Imperial College London, Jan Vitek Northeastern University / Czech Technical University
01:00
20m
Talk
Adversarial Examples for Models of Code
OOPSLA
Noam Yefet Technion, Uri Alon Technion, Eran Yahav Technion
Link to publication DOI Pre-print Media Attached
01:20
20m
Talk
Finding Bugs in Database Systems via Query Partitioning
OOPSLA
Manuel Rigger ETH Zurich, Zhendong Su ETH Zurich
Link to publication DOI Pre-print Media Attached
01:40
20m
Talk
Proving Highly-Concurrent Traversals Correct
OOPSLA
Yotam M. Y. Feldman Tel Aviv University, Artem Khyzha Tel Aviv University, Constantin Enea University of Paris / IRIF / CNRS, Adam Morrison Tel Aviv University, Aleksandar Nanevski IMDEA Software Institute, Noam Rinetzky Tel Aviv University, Sharon Shoham Tel Aviv University
Link to publication DOI Media Attached
02:00
20m
Talk
How Do Programmers Use Unsafe Rust?
OOPSLA
Vytautas Astrauskas ETH Zurich, Christoph Matheja ETH Zurich, Federico Poli ETH Zurich, Peter Müller ETH Zurich, Alexander J. Summers University of British Columbia
Link to publication DOI Media Attached