Memory leak in Nagios3?

Ethan Galstad nagios at nagios.org
Tue Nov 6 16:23:40 CET 2007


Ethan Galstad wrote:
> Andreas Ericsson wrote:
>> Hendrik Bäcker wrote:
>>> Hi List,
>>>
>>> after a four days running nagios 3 (latest cvs) I've recognized that my
>>> system has only 80 MByte of free Memory (top).
>>> After stopping Nagios the amount of free memory jumps up to 2,7 GByte.
>>>
>> Are you using embedded perl? It's the single largest memory-sink in Nagios
>> at the moment.
>>
>>> Now my question: What is the best way to find such a leak (if there is one)?
>>>
>> Ues valgrind.
>>
>>> I know tools like valgrind, but I am not familar with right use of it.
>>>
>>> So, if someone can hit me to the right direction, I will try to debug.
>>>
>> man valgrind, or learn how to implement ref-counting in C and add it to
>> Nagios. If done properly, it will eliminate all in-core leaks and leave
>> only the embedded perl ones.
>>
> 
> I'm guessing the mem leak is somewhere in the newly rewritten macro 
> code.  Here's what I do to run valgrind...
> 
> Edit base/Makefile and uncomment the "CFLAGS" line below...
> 
> # Compiler flags for use with Valgrind
> #CFLAGS=-O0 -g -DHAVE_CONFIG_H @GLIB_INCLUDE@ -DNSCORE
> 
> This will override the normal flags used to compile the Nagios daemon.
> Recompile the Nagios daemon:
> 
> cd base
> make clean
> make
> 
> NOTE: If the large_installation_tweaks option is enabled, you will get a 
> lot of errors, because Nagios intentionally does not free memory in 
> child processes - it leaves that up to the kernel.  I would recomment 
> running Nagios with this option disabled in order to track down memory 
> leaks.
> 
> Run valgrind like so - debug files will be written to 
> /tmp/valgrind.[pid] for inspection.
> 
> valgrind --log-file=/tmp/valgrind --trace-children=no --leak-check=full 
> nagios /usr/local/nagios/etc/nagios.cfg
> 
> I just ran this myself and noticed several mem leaks from the new macro 
> code.  Damn, I thought I ran valgrind before committing the changes. 
> Heading out of town today, but I'll get some patches into CVS when I get 
> back in a few days.
> 

I think I found it.  There was a mem leak in the date/time macro 
generation code.  Patch in CVS now.


Ethan Galstad
Nagios Developer
___
Email: nagios at nagios.org
Web:   www.nagios.org

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/




More information about the Developers mailing list