How Many Mutex Bugs Can a Simple Analysis Find in Go Programs?

Abstract

In open-source software, it is known that there are many concurrency bugs. A previous study in Go revealed that a considerable number of such bugs are simple (for example, 9% of the bugs are the ones that forget to unlock a mutex,) through a manual program investigation. This paper tries to detect such bugs by applying a simple analysis to see how far such a tool can match the manual analysis. We built a simple intraprocedural control flow analysis in Go, and evaluated its performance concerning the open source programs with concurrency bugs reported in the previous study. Consequently, as for quality, the recall is good at 88%, and the precision is poor at 60%; as for analysis time, it can be finished within a practical amount of time (for example, 1 second per 5000 LoC)

    Similar works

    Full text

    thumbnail-image