skip to main content
10.1145/1295074.1295076acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Can self-healing software cope with loitering?

Published: 03 September 2007 Publication History

Abstract

Garbage collectors automatically free memory previously allocated by applications. Generally, they discard unreachable objects from memory, leaving reachable objects intact. However, object reachability does not necessarily imply usability, as an object may be obsolete and still reachable. Such objects are usually referred to as loitering objects. Loitering objects introduce a form of memory leak in a Java application. Predicting, tracing and eliminating loitering objects is a difficult problem. In this paper we address this problem. We present a self-healing approach for dealing with loitering objects. Specifically, the paper proposes an algorithm that can be integrated within the Java garbage collector. The algorithm prevents memory leaks resulting from loitering objects by "paging" suspected live objects to disk and reloading them if they are required. As a proof-of-concept, we have implemented and validated the algorithm for the Java Virtual Machine. This could be a first step towards genuine self-healing of memory management problems.

References

[1]
Panacea-towards a self-healing development framework. In Proceedings of the 10th IFIP/IEEE international symposium on Integrated Network Management, Munich, Germany, 2007.
[2]
C. S. Ananian and M. Rinard. Data size optimizations for java programs. In LCTES '03: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, pages 59--68, New York, NY, USA, 2003. ACM Press.
[3]
K. Arnold, J. Gosling, and D. Holmes. The Java Programming Language. Prentice Hall, 3rd edition, 2000.
[4]
E. T. Chen. Program complexity and programmer productivity. IEEE Trans. Software Eng., 4(3):187--194, 1978.
[5]
G. Chen, M. Kandemir, N. Vijaykrishnan, M. J. Irwin, B. Mathiske, and M. Wolczko. Heap compression for memory-constrained java environments. In OOPSLA '03: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, pages 282--301, New York, NY, USA, 2003. ACM Press.
[6]
T. Elrad, M. Aksit, G. Kiczales, K. Lieberherr, and H. Ossher. Discussing aspects of AOP. Commun. ACM, 44(10):33--38, 2001.
[7]
B. Goetz. Garbage collection and performance. http://www-128.ibm.com/developerworks/java/library/j-jtp01274.html, 2004.
[8]
B. Goetz. Plugging memory leaks with soft references. http://www-128.ibm.com/developerworks/java/library/j-jtp01246.html, 2005.
[9]
B. Goetz. Plugging memory leaks with weak references. http://www-128.ibm.com/developerworks/java/library/j-jtp11225.html/, 2005.
[10]
K. S. Lew, T. S. Dillon, and K. E. Forward. Software complexity and its impact on software reliability. IEEE Trans. Softw. Eng., 14(11):1645--1655, 1988.
[11]
J. Patrick. Handling memory leaks in Java programs. www.ibm.com/developerworks/java/library/j-leaks/, 2001.
[12]
M. Pawlan. Reference Objects and Garbage Collection. http://java.sun.com/developer/technicalArticles/ALT/RefObj/, 1998.
[13]
Sun. Jconsole - Java Monitoring and Management Console. http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jconsole.html, 2007.
[14]
S. Wilson and J. Kesselman. Java Platform Performance: Strategies and Tactics. Prentice Hall, 1st edition, 2000.
[15]
JDK Monitoring and Troubleshooting Tools. http://java.sun.com/javase/6/docs/technotes/tools/, 2007.
[16]
JProbe. http://javaperformancetuning.com/tools/jprobe, 2003.

Cited By

View all
  • (2020)Multi-agent architecture for fault recovery in self-healing systemsJournal of Ambient Intelligence and Humanized Computing10.1007/s12652-020-02443-812:2(2849-2866)Online publication date: 7-Aug-2020
  • (2014)Memory leak detection in PlumbrSoftware: Practice and Experience10.1002/spe.227545:10(1307-1330)Online publication date: 3-Jun-2014
  • (2010)KAL: kernel-assisted non-invasive memory leak tolerance with a general-purpose memory allocatorSoftware—Practice & Experience10.5555/1840756.184075840:8(605-625)Online publication date: 1-Jul-2010
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SOQUA '07: Fourth international workshop on Software quality assurance: in conjunction with the 6th ESEC/FSE joint meeting
September 2007
120 pages
ISBN:9781595937247
DOI:10.1145/1295074
  • General Chair:
  • Mauro Pezzè
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 September 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. autonomic computing
  2. performance management
  3. self-*
  4. self-healing
  5. systems management

Qualifiers

  • Article

Conference

ESEC/FSE07
Sponsor:

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)1
Reflects downloads up to 28 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2020)Multi-agent architecture for fault recovery in self-healing systemsJournal of Ambient Intelligence and Humanized Computing10.1007/s12652-020-02443-812:2(2849-2866)Online publication date: 7-Aug-2020
  • (2014)Memory leak detection in PlumbrSoftware: Practice and Experience10.1002/spe.227545:10(1307-1330)Online publication date: 3-Jun-2014
  • (2010)KAL: kernel-assisted non-invasive memory leak tolerance with a general-purpose memory allocatorSoftware—Practice & Experience10.5555/1840756.184075840:8(605-625)Online publication date: 1-Jul-2010
  • (2010)Formalizing a Methodology for Design- and Runtime Self-HealingProceedings of the 2010 Seventh IEEE International Conference and Workshops on Engineering of Autonomic and Autonomous Systems10.1109/EASe.2010.21(106-115)Online publication date: 22-Mar-2010
  • (2010)KAL: kernel‐assisted non‐invasive memory leak tolerance with a general‐purpose memory allocatorSoftware: Practice and Experience10.1002/spe.97040:8(605-625)Online publication date: 18-Jun-2010
  • (2009)Leak pruningACM SIGARCH Computer Architecture News10.1145/2528521.150827737:1(277-288)Online publication date: 7-Mar-2009
  • (2009)Leak pruningACM SIGPLAN Notices10.1145/1508284.150827744:3(277-288)Online publication date: 7-Mar-2009
  • (2009)Leak pruningProceedings of the 14th international conference on Architectural support for programming languages and operating systems10.1145/1508244.1508277(277-288)Online publication date: 7-Mar-2009
  • (2009)Automatic Generation of Runtime Failure Detectors from Property TemplatesSoftware Engineering for Self-Adaptive Systems10.1007/978-3-642-02161-9_12(223-240)Online publication date: 10-Jun-2009
  • (2008)Tolerating memory leaksACM SIGPLAN Notices10.1145/1449955.144977443:10(109-126)Online publication date: 19-Oct-2008
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media