ISSTA2025
GoPV: A Static Analyzer for Finding Blocking Concurrency Bugs Due to Misuse of Shared-Memory Synchronization in Go
Xiaofan Xu, Wei Song, Jeff Huang
摘要
GoPV is a static analyzer for detecting blocking concurrency bugs due to misuse of shared-memory synchronization primitive in Go. It performs concurrency analysis and (post-)dominator analysis based on call graph and control flow graphs to detect potential concurrency bugs in Go programs. The experimental results show that GoPV detects all blocking concurrency bugs related to shared-memory synchronization on eight benchmark programs. In addition, GoPV uncovers 17 such bugs in 21 large Go applications within 2.78 hours, demonstrating its effectiveness and efficiency.