Memory leak in a shared library plugin
Cason, Kenny
kenny.cason@boeing.com
Wed Sep 30 05:42:00 GMT 2009
Howdy:
I need help determining why memory continuously increases for a process that calls a shared library. Several sets of eyes have scanned the code for many months without success in stopping the memory leakage, if that's what it is. Your input on tools and/or advice are desperately needed.
BTW: because the plugin described below does not run from the command line I have not had practical success with valgrind nor gdb. Purify is installed but hasn't been helpful either. I've heard rumors there might be a switch on the gcc compiler that will help but, if so, it's been elusive.
Situation:
Linux 2.6.9-89.0.9.ELsmp #1 SMP Wed Aug 19 08:07:15 EDT 2009 i686 i686 i386 GNU/Linux
gcc/g++ 3.4.6
Daemon A:
1) uses pPlugin B
2) is owned by a vendor and I have no source code
3) shows increasing memory usage when calling Plugin B, but not otherwise
Plugin B:
1) written in-house so I have all the source code
2) is compiled and linked as a shared library
3) does not run from the command line so use of gdb and breakpoints is of little value
The memory usage of Daemon A continuously increases while repeatedly calling Plugin B, which leads me to believe there is either a memory leak in Plugin B or in the mechanism used by Daemon A to call it. Using the command: ps -efl | grep <process> the memory size (SZ) shown every 5 seconds like this:
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 23129 1 0 78 0 - 59079 - 13:28 ? 00:00:39
4 S root 23129 1 0 78 0 - 59747 - 13:28 ? 00:00:40
4 S root 23129 1 0 78 0 - 59817 - 13:28 ? 00:00:40
4 S root 23129 1 0 78 0 - 59935 - 13:28 ? 00:00:41
4 S root 23129 1 0 78 0 - 60575 - 13:28 ? 00:00:42
4 S root 23129 1 0 78 0 - 60735 - 13:28 ? 00:00:44
4 S root 23129 1 0 78 0 - 61106 - 13:28 ? 00:00:45
4 S root 23129 1 0 78 0 - 61213 - 13:28 ? 00:00:46
4 S root 23129 1 0 78 0 - 61296 - 13:28 ? 00:00:47
4 S root 23129 1 0 78 0 - 61683 - 13:28 ? 00:00:48
4 S root 23129 1 0 78 0 - 61774 - 13:28 ? 00:00:49
4 S root 23129 1 0 78 0 - 61875 - 13:28 ? 00:00:50
4 S root 23129 1 0 78 0 - 61902 - 13:28 ? 00:00:51
Target:
Determine why the memory continuously increases (memory leak?) for Daemon A. If it's a memory leak is it in Daemon A or Plugin B.
Proposed Solution:
This is where I need someone smarter than me to elucidate the path to a solution. Please!!!
As it is I have no visibility to where the memory is being eaten up nor why other than the "ps" command above.
Thanks,
-Kenny
Information Security - Identity Management & Authorization Controls
kenny.cason@boeing.com
206-550-0049
More information about the Gcc-help
mailing list