

FOLLOWUS
1.College of Computer, National University of Defense Technology, Changsha 410073, China
2.Laboratory of Science and Technology on Integrated Logistics Support, National University of Defense Technology, Changsha 410073, China
3.Department of Computer Science, University of California, Davis, USA
[ "E-mail: ziyingdai@nudt.edu.cn" ]
E-mail:xgmao@nudt.edu.cn
Received:07 December 2013,
Revised:2014-;7-16,
Published:2014-08
Scan QR Code
Zi-ying DAI, Xiao-guang MAO, Li-qian CHEN, et al. Automatic recovery from resource exhaustion exceptions by collecting leaked resources[J]. Frontiers of Information Technology & Electronic Engineering, 2014, 15(8): 622-635.
Zi-ying DAI, Xiao-guang MAO, Li-qian CHEN, et al. Automatic recovery from resource exhaustion exceptions by collecting leaked resources[J]. Frontiers of Information Technology & Electronic Engineering, 2014, 15(8): 622-635. DOI: 10.1631/jzus.C1300352.
Despite the availability of garbage collectors
programmers must manually manage non-memory finite system resources such as file descriptors. Resource leaks can gradually consume all available resources and cause programs to raise resource exhaustion exceptions. However
programmers commonly provide no effective recovery approach for resource exhaustion exceptions
which often causes programs to halt without completing their tasks. In this paper
we propose to automatically recover programs from resource exhaustion exceptions caused by resource leaks. We transform programs to catch resource exhaustion exceptions
collect leaked resources
and then retry the failure code. A resource collector is designed to identify leaked resources and safely release them. We implement our approach for Java programs. Experimental results show that our approach can successfully handle resource exhaustion exceptions caused by reported resource leaks and allow programs to complete their tasks with an average execution time increase of 2.52% and negligible bytecode size increase.
C. Allan , , , P. Avgustinov , , , A.S. Christensen , , , 等 . . Adding trace matching with free variables to Aspectj . . ACM SIGPLAN Not , , 2005 . . 40 ( ( 10 ): ): 345 - - 364 . . DOI: 10.1145/1103845.1094839 http://doi.org/10.1145/1103845.1094839 . .
M. Arnold , , , S. Fink , , , D. Grove , , , 等 . . Adaptive optimization in the Jalapeno JVM . . Proc.15th ACM SIGPLAN Conf.on Object-Oriented Program-ming, Systems, Languages, and Applications , , 2000 . . p.47 - - 65 . . DOI: 10.1145/353171.353175 http://doi.org/10.1145/353171.353175 . .
M. Arnold , , , M. Vechev , , , E. Yahav . . QVM:an efficient runtime for detecting defects in deployed systems . . ACM Trans.Softw.Eng.Methodol , , 2011 . . 21 ( ( 1 ): ): 2:1 - - 2:35 . . DOI: 10.1145/2063239.2063241 http://doi.org/10.1145/2063239.2063241 . .
S.M. Blackburn , , , P. Cheng , , , K.S. McKinley . . Oil and water . . High performance garbage collection in Java with MMTK.Proc.26th Int.Conf.on Software Engineering , , 2004 . . p.137 - - 146 . . DOI: 10.1109/ICSE.2004.1317436 http://doi.org/10.1109/ICSE.2004.1317436 . .
S.M. Blackburn , , , R. Garner , , , C. Hoffmann , , , 等 . . The DaCapo benchmarks:Java benchmarking development and analysis . . Proc.21st Annual ACM SIGPLAN Conf.on Object-Oriented Programming Systems, Languages, and Applications , , 2006 . . p.169 - - 190 . . DOI: 10.1145/1167473.1167488 http://doi.org/10.1145/1167473.1167488 . .
H.J. Boehm . . Destructors, finalizers, and synchronization . . Proc.30th ACM SIGPLAN-SIGACT Symp.on Principles of Programming Languages , , 2003 . . p.262 - - 272 . . DOI: 10.1145/604131.604153 http://doi.org/10.1145/604131.604153 . .
M.D. Bond , , , K.S. McKinley . . Tolerating memory leaks . . Proc.23rd ACM SIGPLAN Conf.on ObjectOriented Programming Systems Languages and Applications , , 2008 . . p.109 - - 126 . . DOI: 10.1145/1449764.1449774 http://doi.org/10.1145/1449764.1449774 . .
B. Cabral , , , P. Marques . . Exception handling:a field study in Java and . . NET.LNCS , , 2007 . . 4609 151 - - 175 . . DOI: 10.1007/978-3-540-73589-2_8 http://doi.org/10.1007/978-3-540-73589-2_8 . .
B. Cabral , , , P. Marques . . A case for automatic exception handling . . IEEE/ACM Int.Conf.on Automated Software Engineering , , 2008 . . p.403 - - 406 . . . .
A. Carzaniga , , , A. Gorla , , , A. Mattavelli , , , 等 . . Automatic recovery from runtime failures . . Proc.Int.Conf.on Software Engineering , , 2013 . . p.782 - - 791 . . . .
H. Chang , , , L. Mariani , , , M. Pezze . . In-field healing of integration problems with COTS components . . Proc.31st Int.Conf.on Software Engineering , , 2009 . . p.166 - - 176 . . DOI: 10.1109/ICSE.2009.5070518 http://doi.org/10.1109/ICSE.2009.5070518 . .
F. Chen , , , G. Roşu . . MOP:an efficient and generic runtime verification framework . . Proc.22nd Annual ACM SIGPLAN Conf.on Object-Oriented Programming Systems and Applications , , 2007 . . p.569 - - 588 . . DOI: 10.1145/1297027.1297069 http://doi.org/10.1145/1297027.1297069 . .
Z. Dai , , , X. Mao , , , L. Lei , , , 等 . . Resco:automatic collection of leaked resources . . IEICE Trans.Inform.Syst , , 2013 . . E96-D ( ( 1 ): ): 28 - - 39 . . . .
R. DeLine , , , M. F hndrich . . Enforcing high-level protocols in low-level software . . Proc.ACM SIGPLAN Conf.on Programming Language Design and Implementation , , 2001 . . p.59 - - 69 . . DOI: 10.1145/378795.378811 http://doi.org/10.1145/378795.378811 . .
K. Dobolyi , , , W. Weimer . . Changing Java's semantics for handling null pointer exceptions . . 19th Int.Symp.on Software Reliability Engineering , , 2008 . . p.47 - - 56 . . DOI: 10.1109/ISSRE.2008.59 http://doi.org/10.1109/ISSRE.2008.59 . .
R.K. Dybvig , , , C. Bruggeman , , , D. Eby . . Guardians in a generation-based garbage collector . . Proc.ACM SIGPLAN Conf.on Programming Language Design and Implementation , , 1993 . . p.207 - - 216 . . DOI: 10.1145/155090.155110 http://doi.org/10.1145/155090.155110 . .
C. Fetzer , , , P. Felber , , , K. Hogstedt . . Automatic detection and masking of nonatomic exception handling . . IEEE Trans.Softw.Eng , , 2004 . . 30 ( ( 8 ): ): 547 - - 560 . . DOI: 10.1109/TSE.2004.35 http://doi.org/10.1109/TSE.2004.35 . .
G. Friedrich , , , M. Fugini , , , E. Mussi , , , 等 . . Exception handling for repair in service-based processes . . IEEE Trans.Softw.Eng , , 2010 . . 36 ( ( 2 ): ): 198 - - 215 . . DOI: 10.1109/TSE.2010.8 http://doi.org/10.1109/TSE.2010.8 . .
S.Z. Guyer , , , K.S. McKinley , , , D. Frampton . . Free-me:a static analysis for automatic individual object reclamation . . Proc.ACM SIGPLAN Conf.on Programming Language Design and Implementation , , 2006 . . p.364 - - 375 . . DOI: 10.1145/1133981.1134024 http://doi.org/10.1145/1133981.1134024 . .
A. Hejlsberg , , , P. Golde , , , S. Wiltamuth . . C#Language Specification . . Addison Wesley , , 2003 . . .
M. Herlihy , , , V. Luchangco , , , M. Moir . . A flexible framework for implementing software transactional memory . . ACM SIGPLAN Not , , 2006 . . 41 ( ( 10 ): ): 253 - - 262 . . DOI: 10.1145/1167515.1167495 http://doi.org/10.1145/1167515.1167495 . .
Y. Lei , , , X.G. Mao , , , Z.Y. Dai , , , 等 . . Effective fault localization approach using feedback . . IEICE Trans.Inform.Syst , , 2012 . . E95.D ( ( 9 ): ): 2247 - - 2257 . . DOI: 10.1587/transinf.E95.D.2247 http://doi.org/10.1587/transinf.E95.D.2247 . .
M. Martin , , , B. Livshits , , , M.S. Lam . . Finding application errors and security flaws using PQL:a program query language . . Proc.20th Annual ACM SIGPLAN Conf.on Object-Oriented Programming, Systems, Languages, and Applications , , 2005 . . p.365 - - 383 . . DOI: 10.1145/1094811.1094840 http://doi.org/10.1145/1094811.1094840 . .
D.A. Park , , , S.V. Rice . . A framework for unified resource management in Java . . Proc.4th Int.Symp.on Principles and Practice of Programming in Java , , 2006 . . p.113 - - 122 . . DOI: 10.1145/1168054.1168070 http://doi.org/10.1145/1168054.1168070 . .
Y.H. Qi , , , X.G. Mao , , , Y.J. Wen , , , 等 . . More efficient automatic repair of large-scale programs using weak recompilation . . Sci.China Inform.Sci , , 2012 . . 55 ( ( 12 ): ): 2785 - - 2799 . . DOI: 10.1007/s11432-012-4741-1 http://doi.org/10.1007/s11432-012-4741-1 . .
H.B. Shah , , , C. Gorg , , , M.J. Harrold . . Understanding exception handling:viewpoints of novices and experts . . IEEE Trans.Softw.Eng , , 2010 . . 36 ( ( 2 ): ): 150 - - 161 . . DOI: 10.1109/TSE.2010.7 http://doi.org/10.1109/TSE.2010.7 . .
S. Sinha , , , H. Shah , , , C. G rg , , , 等 . . Fault localization and repair for Java runtime exceptions . . Proc.18th Int.Symp.on Software Testing and Analysis , , 2009 . . p.153 - - 164 . . DOI: 10.1145/1572272.1572291 http://doi.org/10.1145/1572272.1572291 . .
E. Torlak , , , S. Chandra . . Effective interprocedural resource leak detection . . Proc.32nd ACM/IEEE Int.Conf.on Software Engineering , , 2010 . . p.535 - - 544 . . DOI: 10.1145/1806799.1806876 http://doi.org/10.1145/1806799.1806876 . .
R. Vall e-Rai , , , P. Co , , , E. Gagnon , , , 等 . . SOOT-a Java bytecode optimization framework . . Proc.Conf.Centre for Advanced Studies on Collaborative Research , , 1999 . . p.13 . .
J.D. Walsh , , , F. Bordeleau , , , B. Selic . . Domain analysis of dynamic system reconfiguration . . Softw.Syst.Model , , 2007 . . 6 ( ( 4 ): ): 355 - - 380 . . DOI: 10.1007/s10270-006-0038-4 http://doi.org/10.1007/s10270-006-0038-4 . .
W. Weimer , , , G.C. Necula . . Mining temporal specifications for error detection . . LNCS , , 2005 . . 3440 461 - - 476 . . DOI: 10.1007/978-3-540-31980-1_30 http://doi.org/10.1007/978-3-540-31980-1_30 . .
W. Weimer , , , G.C. Necula . . Exceptional situations and program reliability . . ACM Trans.Program.Lang.Syst , , 2008 . . 30 ( ( 2 ): ): 8:1 - - 8:51 . . DOI: 10.1145/1330017.1330019 http://doi.org/10.1145/1330017.1330019 . .
Q. Wu , , , G.T. Liang , , , Q.X. Wang , , , 等 . . Iterative mining of resource-releasing specifications . . Proc.26th IEEE/ACM Int.Conf.on Automated Software Engineering , , 2011 . . p.233 - - 242 . . DOI: 10.1109/ASE.2011.6100058 http://doi.org/10.1109/ASE.2011.6100058 . .
Publicity Resources
Related Articles
Related Author
Related Institution
京公网安备11010802024621