Recitation #3: Eraser
Before reading the Eraser paper, refresh your memory on what race conditions are and the troubles that they can cause by revisiting sections 5.2.2, 5.2.3, and 5.2.4 of the textbook.
Then, read the Eraser paper, and think about the following questions as you read the paper:
- According to the lockset algorithm, when does eraser signal a data race? Why is this condition chosen?
- Under what conditions does Eraser report a false positive? What conditions does it produce false negatives?
- Typically, instrumenting a program changes the intra-thread timing (the paper calls it interleaving). This can cause bugs to disappear when you start trying to find them. What aspect of the Eraser design mitigates this problem?
- Please raise at least one question of your own for the discussion.
The deadline of your answer and questions is 23:59, 2015-4-9.