An Automated Approach of Detection of Memory Leaks for Remote Server Controllers
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.
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.
Plagiarism screening will be conducted by EMITTER Journal Editorial Board using iThenticate Plagiarism Checker and CrossCheck plagiarism screening service. Author should download and signing declaration of plagiarism form here and resubmit it with copyright transfer form via online submission.