ACM Home Page
Please provide us with feedback. Feedback
QVM: an efficient runtime for detecting defects in deployed systems
Full text PdfPdf (917 KB)
Source
Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications table of contents
Nashville, TN, USA
SESSION: Runtime table of contents
Pages 143-162  
Year of Publication: 2008
ISBN:978-1-60558-215-3
Also published in ...
Authors
Matthew Arnold  IBM TJ Watson Research Center, Hawthorne, NY, USA
Martin Vechev  IBM TJ Watson Research Center, Hawthorne, NY, USA
Eran Yahav  IBM TJ Watson Research Center, Hawthorne, NY, USA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 16,   Downloads (12 Months): 191,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1449764.1449776
What is a DOI?

ABSTRACT

Coping with software defects that occur in the post-deployment stage is a challenging problem: bugs may occur only when the system uses a specific configuration and only under certain usage scenarios. Nevertheless, halting production systems until the bug is tracked and fixed is often impossible. Thus, developers have to try to reproduce the bug in laboratory conditions. Often the reproduction of the bug consists of the lion share of the debugging effort.

In this paper we suggest an approach to address the aforementioned problem by using a specialized runtime environment (QVM, for Quality Virtual Machine). QVM efficiently detects defects by continuously monitoring the execution of the application in a production setting. QVM enables the efficient checking of violations of user-specified correctness properties, e.g., typestate safety properties, Java assertions, and heap properties pertaining to ownership.

QVM is markedly different from existing techniques for continuous monitoring by using a novel overhead manager which enforces a user-specified overhead budget for quality checks. Existing tools for error detection in the field usually disrupt the operation of the deployed system. QVM, on the other hand, provides a balanced trade off between the cost of the monitoring process and the maintenance of sufficient accuracy for detecting defects. Specifically, the overhead cost of using QVM instead of a standard JVM, is low enough to be acceptable in production environments.

We implemented QVM on top of IBM's J9 Java Virtual Machine and used it to detect and fix various errors in real-world applications.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
GOIM: Gamers own instant messenger. available at http://goim.us/wiki/show/GOIM.
2
3
4
 
5
 
6
Auerbach, J., Bacon, D., Cheng, P., Grove, D., Biron, B., Gracie, C., McCloskey, B., Micic, A., and Sciampacone, R. Toshio suganuma and toshiaki yasue and motohiro kawahito and hideaki komatsu and toshio nakatani. In Proceedings of the International Conference on Embedded Software (New York, NY, USA, 2008), ACM.
7
 
8
Azureus - Java BitTorrent client. http://azureus.sourceforge.net/.
 
9
Bodden, E., Hendren, L. J., Lam, P., Lhoták, O., and Naeem, N. A. Collaborative runtime verification with tracematches. In 7th International Workshop on Runtime Verification (RV) (2007), vol. 4839 of Lecture Notes in Computer Science, pp. 9--21.
 
10
Bodden, E., Hendren, L. J., and Lhoták, O. A staged static program analysis to improve the performance of runtime monitoring. In ECOOP (2007), pp. 525--549.
11
12
 
13
Chilimbi, T. M., and Ganapathy, V. Heapmd: identifying heap-based bugs using anomaly detection. vol. 34, ACM, pp. 219--228.
14
15
 
16
DeLine, R., and Fähndrich, M. Adoption and focus: Practical linear types for imperative programming. pp. 13--24.
17
 
18
Eclipse. Standard widget toolkit (swt). http://www.eclipse.org/swt/.
19
 
20
 
21
Foster, J. S., Terauchi, T., and Aiken, A. Flow-sensitive type qualifiers. pp. 1--12.
22
23
24
25
 
26
 
27
 
28
Livshits, V. B. Turning Eclipse against itself: Finding bugs in Eclipse code using lightweight static analysis. Eclipsecon '05 Research Exchange, Mar. 2005.
 
29
Microsystems, S. Jvmtm tool interface, version 1.0. In http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html.
 
30
Mitchell, N. The runtime structure of object ownership. In ECOOP (2006), D. Thomas, Ed., vol. 4067 of Lecture Notes in Computer Science, Springer, pp. 74--98.
31
32
33
34
 
35
Shaham, R., Yahav, E., Kolodner, E., and Sagiv, M. Establishing local temporal heap safety properties with applications to compile-time memory management. In Static Analysis Symposium (2003).
 
36
37
38

Collaborative Colleagues:
Matthew Arnold: colleagues
Martin Vechev: colleagues
Eran Yahav: colleagues