LockPeeker: Detecting latent locks in Java APIs

Ziyi Lin, Hao Zhong, Yuting Chen, Jianjun Zhao

研究成果: 著書/レポートタイプへの貢献会議での発言

5 引用 (Scopus)

抜粋

Detecting lock-related defects has long been a hot research topic in software engineering. Many efforts have been spent on detecting such deadlocks in concurrent software systems. However, latent locks may be hidden in application programming interface (API) methods whose source code may not be accessible to developers. Many APIs have latent locks. For example, our study has shown that J2SE alone can have 2,000+ latent locks. As latent locks are less known by developers, they can cause deadlocks that are hard to perceive or diagnose. Meanwhile, the state-of-the-art tools mostly handle API methods as black boxes, and cannot detect deadlocks that involve such latent locks. In this paper, we propose a novel black-box testing approach, called LockPeeker, that reveals latent locks in Java APIs. The essential idea of LockPeeker is that latent locks of a given API method can be revealed by testing the method and summarizing the locking effects during testing execution. We have evaluated LockPeeker on ten real-world Java projects. Our evaluation results show that (1) LockPeeker detects 74.9% of latent locks in API methods, and (2) it enables state-of-the-art tools to detect deadlocks that otherwise cannot be detected.

元の言語英語
ホスト出版物のタイトルASE 2016 - Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering
編集者Sarfraz Khurshid, David Lo, Sven Apel
出版者Association for Computing Machinery, Inc
ページ368-378
ページ数11
ISBN(電子版)9781450338455
DOI
出版物ステータス出版済み - 8 25 2016
イベント31st IEEE/ACM International Conference on Automated Software Engineering, ASE 2016 - Singapore, シンガポール
継続期間: 9 3 20169 7 2016

出版物シリーズ

名前ASE 2016 - Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering

その他

その他31st IEEE/ACM International Conference on Automated Software Engineering, ASE 2016
シンガポール
Singapore
期間9/3/169/7/16

    フィンガープリント

All Science Journal Classification (ASJC) codes

  • Software
  • Computational Theory and Mathematics
  • Human-Computer Interaction

これを引用

Lin, Z., Zhong, H., Chen, Y., & Zhao, J. (2016). LockPeeker: Detecting latent locks in Java APIs. : S. Khurshid, D. Lo, & S. Apel (版), ASE 2016 - Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (pp. 368-378). (ASE 2016 - Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering). Association for Computing Machinery, Inc. https://doi.org/10.1145/2970276.2970355