An Automated Approach of Detection of Memory Leaks for Remote Server Controllers
Abstract
Memory leaks are a major concern to the long running applications like servers which make the working set to grow with the program. This eventually leads to system crashing. This paper discusses a staged approach to detect leaks in firmware of remote server controller. Remote server controller monitors the server remotely with many processes running in the background. Any memory leak in the long running applications pose a threat to the performance of the system. The approach adopted here filters the processes running in the system with leaks based on time threshold in the first stage. These processes with leaks are passed to the next stage where precise memory leak detection is done using the open source dynamic instrumentation tool Valgrind. The system leverages an automated leak detection approach that invokes the leak detection process on encountering any severity in the system and generates a consolidated leak report. The proposed approach has less impact on the performance of the system and is faster compared to many available systems as there is no need to modify or re-compile the program. In addition, the automated approach offers an effective technique for detecting possible leakages in early software development phases.
Downloads
References
F. Machida, N. Miyoshi, Analysis of an optimal stopping problem for software rejuvenation in a deteriorating job processing system, Reliability Engineering & System Safety, Vol. 168, pp. 128 – 135, 2017. DOI: https://doi.org/10.1016/j.ress.2017.05.019
S. Cherem, L. Princehouse, and R. Rugina, Practical Memory Leak Detection Using Guarded Value-flow Analysis, ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 480–491, 2007. DOI: https://doi.org/10.1145/1273442.1250789
D. L. Heine and M. S. Lam, Static Detection of Leaks in Polymorphic Containers, International Conference on Software Engineering (ICSE), pp. 252–261, 2006. DOI: https://doi.org/10.1145/1134285.1134321
Nicholas Nethercote, Julian Seward, Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation, Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation, USA, 2007, pp. 89-100, 2007. DOI: https://doi.org/10.1145/1273442.1250746
James Clause, Alessandro Orso, Leakpoint: pinpointing the causes of memory leaks, Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, Vol. 1, pp. 515–524, 2010. DOI: https://doi.org/10.1145/1806799.1806874
Matthias Hauswirth, Trishul M. Chilimbi, Low-overhead memory leak detection using adaptive statistical profiling, ACM SIGOPS Operating Systems Review,Vol. 38, No. 5, 2004. DOI: https://doi.org/10.1145/1037949.1024412
Konstantin Serebryany and Derek Bruening, AddressSanitizer: a fast address sanity checker, Proceedings of the USENIX conference on Annual Technical Conference, pp.28, 2012.
Changhee Jung, Sangho Lee, Easwaran Raman, Santosh S Pande, Automated memory leak detection for production use, Proceedings of the 36th International Conference on Software Engineering, pp. 825–836, 2014. DOI: https://doi.org/10.1145/2568225.2568311
R. Beneder, B. Glatz, M. Horauer and T. Rauscher, Memory leak detection runtime-service for embedded Linux devices, Proceedings of the 2014 IEEE Emerging Technology and Factory Automation (ETFA), Barcelona, pp. 1-6, 2014. DOI: https://doi.org/10.1109/ETFA.2014.7005223
Y. Sui, D. Ye and J. Xue, Detecting Memory Leaks Statically with Full-Sparse Value-Flow Analysis, in IEEE Transactions on Software Engineering, vol. 40, no. 2, pp. 107-122, Feb. 2014. DOI: https://doi.org/10.1109/TSE.2014.2302311
Xiaohui Sun, Sihan Xu, Chenkai Guo, Jing Xu, et al. A Projection-based Approach for Memory Leak Detection, 42nd IEEE International Conference on Computer Software & Applications, IEEE, Vol. 2, pp. 430-435, 2018.
The LLVM Foundation, Clang static analyzer, 2018.
G. Fan, R. Wu, Q. Shi, X. Xiao, J. Zhou and C. Zhang, SMOKE: Scalable Path-Sensitive Memory Leak Detection for Millions of Lines of Code, 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE), Montreal, QC, Canada, pp. 72-82, 2019. DOI: https://doi.org/10.1109/ICSE.2019.00025
Copyright (c) 2021 EMITTER International Journal of Engineering Technology
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
The copyright to this article is transferred to Politeknik Elektronika Negeri Surabaya(PENS) if and when the article is accepted for publication. The undersigned hereby transfers any and all rights in and to the paper including without limitation all copyrights to PENS. The undersigned hereby represents and warrants that the paper is original and that he/she is the author of the paper, except for material that is clearly identified as to its original source, with permission notices from the copyright owners where required. The undersigned represents that he/she has the power and authority to make and execute this assignment. The copyright transfer form can be downloaded here .
The corresponding author signs for and accepts responsibility for releasing this material on behalf of any and all co-authors. This agreement is to be signed by at least one of the authors who have obtained the assent of the co-author(s) where applicable. After submission of this agreement signed by the corresponding author, changes of authorship or in the order of the authors listed will not be accepted.
Retained Rights/Terms and Conditions
- Authors retain all proprietary rights in any process, procedure, or article of manufacture described in the Work.
- Authors may reproduce or authorize others to reproduce the work or derivative works for the author’s personal use or company use, provided that the source and the copyright notice of Politeknik Elektronika Negeri Surabaya (PENS) publisher are indicated.
- Authors are allowed to use and reuse their articles under the same CC-BY-NC-SA license as third parties.
- Third-parties are allowed to share and adapt the publication work for all non-commercial purposes and if they remix, transform, or build upon the material, they must distribute under the same license as the original.
Plagiarism Check
To avoid plagiarism activities, the manuscript will be checked twice by the Editorial Board of the EMITTER International Journal of Engineering Technology (EMITTER Journal) using iThenticate Plagiarism Checker and the CrossCheck plagiarism screening service. The similarity score of a manuscript has should be less than 25%. The manuscript that plagiarizes another author’s work or author's own will be rejected by EMITTER Journal.
Authors are expected to comply with EMITTER Journal's plagiarism rules by downloading and signing the plagiarism declaration form here and resubmitting the form, along with the copyright transfer form via online submission.