Lecture preparation
Before lecture, read the paper assigned below, and submit two items
to the
submission website:
- Submit your own question about the paper (e.g., what you find most
confusing about the paper or the paper's general context/problem), before
lecture (i.e., 1pm). You cannot use the question below. To the extent
possible, during lecture we will try to answer questions submitted
beforehand.
- Submit your answer for the question below, before the beginning of the lecture.
Also keep in mind that you will need to write a
paper summary for your choice of papers
throughout the semester.
Assignment
Read the paper
Efficient Scalable Thread-Safety-Violation Detection
by Li et al. You can also watch the video of the conference presentation of this
paper at SOSP 2019,
here.
Why are we reading this paper?
- Pragmatic and effective approach for finding concurrency bugs.
- Motivation for the difficulty of finding concurrency bugs.
- Well-written paper that explains how TSVD contrasts with other approaches.
What to learn from this paper?
- Why concurrency bugs are difficult to find.
- Delay technique for triggering concurrency bugs.
- How to define concurrency bugs: this paper's proposal is "thread-safety violations".
- Trade-offs between the delay technique used in TSVD (and DataCollider) and other approaches such as tracking locks or tracking happens-before relationships.
Answer this question
How does TSVD define what constitutes a "concurrency bug" (i.e., their "thread-safety violation")?
What kinds of bugs due to concurrency would TSVD never find?
Are there concurrency bugs that TSVD flags but that are not "real bugs"?