Hi Sri, On Wed, Oct 26, 2011 at 8:20 PM, Sri Ram Vemulpali <sri.ram.gmu06@gmail.com> wrote:
Hi All,
I have very difficult problem I am working on to figure out where the memory leak is in my system. Sometimes it shows up and sometimes it reveals very slowly (I mean increments very slowly). This is dependent on system load, if the system is in very high load, then leak is very fast. We tried solving this problem from many dimensions, but no success.
After quite sometime, we started using valgrind to capture the memory leak. The funny thing is the leak disappears once we start running our application on top of valgrind. So, we cannot capture leak using valgrind. We came to conclusion that, since valgrind serializes the allocations (leak disappears), we thought this might be result of race conditions, that resulted from system high load (by the way ours is multi threaded system). We run system without valgrind we see the memory leak.
The question is, is it true that valgrind serializes the mem allocations. Does this happen to anyone disappearing the leak when used valgrind.
Any thoughts and input that can help me solve this problem. Thanks to all in advance.
A couple of possibilities spring to mind. It might be that the leak is being caused by some uninitialized variables/memory. Running under valgrind may be causing the unitialized variables to change, which in turn causes the behavior to change. It also may be that you don't have a leak, but in fact have heap fragmentation, which can look like a leak. -- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com