Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
GPredict: generic predictive concurrency analysis
Huang J., Luo Q., Rosu G.  ICSE 2015 (Proceedings of the 37th International Conference on Software Engineering, Florence, Italy, May 16-24, 2015)847-857.2015.Type:Proceedings
Date Reviewed: Oct 22 2015

Predictive trace analysis (PTA) detects concurrency faults not recorded in the observed execution order of a nondeterminate concurrent program by producing and analyzing other feasible execution orders of events of the same program from the recorded trace using causal relationships. Existing PTA techniques mostly predict low-level conventional concurrency faults like memory anomalies, data races, and so on using global execution traces. This paper proposes GPredict, which implements PTA in multithreaded Java programs, for predicting various high-level generic concurrency property violations like unsafe iterator traversal along with conventional concurrency faults. GPredict uses only thread-local traces, leading to significant performance improvement over existing techniques.

GPredict provides a property specification language, extended from monitoring-oriented programming (MOP) [1], to declare property parameters, property event sets (using AspectJ pointcuts), thread attributes, and so on, and to define a property (like “a collectioncannot be modified when being iterated over”) using regular expressions over the declared events and attributes. Property violations are modeled by defining first-order logical constraints over the events. For obtaining other feasible execution sequences of the same program from observed thread-local traces, the authors define a causal model (extending global traces [2]) by modeling first-order logical constraints on critical events (named model events) that determine the causal order like shared data read/writes, thread synchronizations, and so on. GPredict uses the Z3 satisfiable modulo theory (SMT) solver [3] to solve the conjunction of all the constraints and detect “property violations in all the feasible executions captured by the causal model.”

For implementation, “taking the target program (Java bytecode) and the property specification as input, GPredict first adds necessary instrumentation into the program for logging the model events during execution, and uses JavaMOP’s front-end parser to produce a corresponding AspectJ file for the property.” The AspectJ file is weaved into the instrumented bytecode during program execution to emit a trace, upon which GPredict uses an offline analyzer to build required constraints and a SMT solver to detect violations.

The paper is well presented. It will be helpful to developers of multithreaded programs in Java who have prior knowledge of SMT problems, AspectJ, and JavaMOP.

Reviewer:  Partha Pratim Das Review #: CR143879 (1601-0063)
1) Chen, F.; Roşu, G. MOP: an efficient and generic runtime verification framework. In Proc. of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications (OOPSLA), ACM, 2007, 569–588.
2) Huang, J.; O'Neil Meredith, P.; Rosu, G. Maximal sound predictive race detection with control flow abstraction. In Proc. of PLDI (Edinburgh, UK, 06/09, 2014), ACM, 2014, 337–348.
3) De Moura, L. ; Bjorner, N. Z3: an efficient SMT solver. In Proc. of TACAS 2008, Springer, 2008, 337–340.
Bookmark and Share
 
Tracing (D.2.5 ... )
 
 
Java (D.3.2 ... )
 
 
Testing And Debugging (D.2.5 )
 
Would you recommend this review?
yes
no
Other reviews under "Tracing": Date
Experience with a portable debugging tool
Steffen J. Software--Practice & Experience 14(4): 323-334, 1984. Type: Article
Feb 1 1985
A probe effect in concurrent programs
Gait J. Software--Practice & Experience 16(3): 225-233, 1986. Type: Article
Sep 1 1986
Effectiveness of trace sampling for performance debugging tools
Martonosi M., Gupta A., Anderson T. ACM SIGMETRICS Performance Evaluation Review 21(1): 248-259, 1993. Type: Article
Jul 1 1994
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy