摘要

This paper presents a static analysis-based regression analysis for multithreaded Java applications to help detect changes that may introduce potential deadlocks. Our approach leverages the correct/intended ordering of lock acquires and proposes to keep a watch list of lock type pairs that the developers may want to keep an eye on as the software evolves. The idea is to filter code changes that may employ the locks in the wrong order. We also present a heuristic that can automatically infer the intended order most of the time. Our experiments on several case studies with large code bases show that our approach is effective in pinpointing code changes that may introduce deadlocks and a cost-effective way of utilizing static analysis.

  • 出版日期2018-9

全文