Where The Bugs Actually Are

Lu et al. classified every concurrency bug fixed in four mature codebases:

Application Non-deadlock Deadlock
MySQL 14 9
Apache 13 4
Mozilla 41 16
OpenOffice 6 2
Total 74 31

Of the 74 non-deadlock bugs, 97 percent were atomicity violations or order violations. Your team can fund exactly one analysis tool this quarter: a deadlock detector, a checker for atomicity and order violations, or a lock-ordering linter. Which reading of the table is correct?

A

The lock-ordering linter covers both columns, because every concurrency bug reduces to a lock taken in the wrong order or not taken at all.

B

The two non-deadlock categories account for about 72 of 105 bugs, roughly 69 percent, so the atomicity-and-order checker addresses more than twice the population a deadlock detector could.

C

Deadlock accounts for the majority of the 105 bugs at 31 of them, so the deadlock detector has the widest reach.

D

Mozilla alone contributes 57 of the 105 bugs, so the deciding question is which tool Mozilla's maintainers adopted.