Finding synchronization defects in java programs: extended static analyses and code patterns

  • Authors:
  • Frank Otto;Thomas Moschny

  • Affiliations:
  • University of Karlsruhe, Karlsruhe, Germany;University of Karlsruhe, Karlsruhe, Germany

  • Venue:
  • Proceedings of the 1st international workshop on Multicore software engineering
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Concurrent programming is getting more and more important. Managing concurrency requires the usage of synchronization mechanisms, which is error-prone. Well-known examples for synchronization defects are deadlocks and race conditions. Detecting such errors is known to be difficult. There are several approaches to identify potential errors, but they either produce a high number of false positives or suffer from high computational overhead, catching only a small number of defects. Our approach uses static analysis techniques combined with points-to and may-happen-in-parallel (MHP) information to reduce the number of false positives. Additionally, we present code patterns indicating possible synchronization problems. We have implemented our approach using the Java framework Soot. Our tool was tested with small code examples, an open source web server, and commercial software. First results show that the number of false positives is reduced significantly.