NSCA memory leak

Andreas Ericsson ae at op5.se
Tue Jul 7 10:01:49 CEST 2009


daniel at zoltak.com wrote:
> Hi list,
> 
> I am running nagios on Gentoo and having an issue with NSCA.
> 
> When NSCA is running for a few days I get it crashes with this in dmesg:
> 
> localhost nsca[6030]: segfault at ffffffffff600429 ip 00007f8d3ea19dfc 
> sp 00007fff47281350 error 7 in libwrap.so.0.7.6[7f8d3ea16000+8000]
> 
> I compiled NSCA in debug mode and ran it with valgrind. We found the 
> following memory leak:
> 
> ==8837== Syscall param fcntl(arg) contains uninitialised byte(s)
> ==8837==    at 0x553EF5B: fcntl (in /lib64/libc-2.9.so)
> ==8837==    by 0x402FE1: handle_connection (in /usr/bin/nsca)
> ==8837==    by 0x403369: accept_connection (in /usr/bin/nsca)
> ==8837==    by 0x4040D5: main (in /usr/bin/nsca)
> ==8840==
> ==8840== Syscall param fcntl(arg) contains uninitialised byte(s)
> ==8840==    at 0x553EF5B: fcntl (in /lib64/libc-2.9.so)
> ==8840==    by 0x402FE1: handle_connection (in /usr/bin/nsca)
> ==8840==    by 0x403369: accept_connection (in /usr/bin/nsca)
> ==8840==    by 0x4040D5: main (in /usr/bin/nsca)
> ==8842==
> ==8842== Syscall param fcntl(arg) contains uninitialised byte(s)
> ==8842==    at 0x553EF5B: fcntl (in /lib64/libc-2.9.so)
> ==8842==    by 0x402FE1: handle_connection (in /usr/bin/nsca)
> ==8842==    by 0x403369: accept_connection (in /usr/bin/nsca)
> ==8842==    by 0x4040D5: main (in /usr/bin/nsca)
> ==8838==
> ==8838== Syscall param fcntl(arg) contains uninitialised byte(s)
> ==8838==    at 0x553EF5B: fcntl (in /lib64/libc-2.9.so)
> ==8838==    by 0x402FE1: handle_connection (in /usr/bin/nsca)
> ==8838==    by 0x403369: accept_connection (in /usr/bin/nsca)
> ==8838==    by 0x4040D5: main (in /usr/bin/nsca)
> ==8828==
> ==8828== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 14 from 2)
> ==8828== malloc/free: in use at exit: 621 bytes in 25 blocks.
> ==8828== malloc/free: 115 allocs, 90 frees, 32,290 bytes allocated.
> ==8828== For counts of detected errors, rerun with: -v
> ==8828== Use --track-origins=yes to see where uninitialised values come 
> from
> ==8828== searching for pointers to 25 not-freed blocks.
> ==8828== checked 124,080 bytes.
> ==8828==
> ==8828== LEAK SUMMARY:
> ==8828==    definitely lost: 584 bytes in 22 blocks.
> ==8828==      possibly lost: 0 bytes in 0 blocks.
> ==8828==    still reachable: 37 bytes in 3 blocks.
> ==8828==         suppressed: 0 bytes in 0 blocks.
> ==8828== Rerun with --leak-check=full to see details of leaked memory.
> 
> I then ran with options --leak-check=full --show-reachable=yes. The 
> results are attached (20090707_valgrind_full_options.txt).
> 
> The versin of Gentoo runs libc 2.9. We have a few Fedora core 8 machines 
> running libc 2.7 with the same version of NSCA but don't see the issue.
> 
> Can anyone shead some light on the issue. Is it a NSCA issue or 
> libc/Gentoo issue?
> 

If you're seeing it with one version of libc but not with another, it's
probably due to either libc or the compiler, or a combination of the two.
Have you tried recompiling from source? Does it show the same leak?

-- 
Andreas Ericsson                   andreas.ericsson at op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have 
the opportunity to enter the BlackBerry Developer Challenge. See full prize 
details at: http://p.sf.net/sfu/blackberry




More information about the Developers mailing list