Re: Memory Leaking with NetSNMP V5.5

Mark Brooks <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <[email protected]>
Firstly apologies for the length of this email all
To further the game - we thing there is an issue with snmp and the lvs
module. ive been using valgrind all afternoon with different options. I
think I have narrowed it down to being to problem with specific MIBs.

If i do an snmp walk

snmpwalk -c public -v 2c 192.168.2.32 to get it to dump everything I get the
following output from


[root@lbmaster sbin]# valgrind --tool=memcheck --leak-check=yes snmpd -f -Lo
==31959== Memcheck, a memory error detector.
==31959== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
==31959== Using LibVEX rev 1658, a library for dynamic binary translation.
==31959== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==31959== Using valgrind-3.2.1, a dynamic binary instrumentation framework.
==31959== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
==31959== For more details, rerun with: -v
==31959==
==31959== Warning: noted but unhandled ioctl 0x8946 with no size/direction
hints
==31959==    This could cause spurious value errors to appear.
==31959==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a
proper wrapper.
==31959== Warning: noted but unhandled ioctl 0x8946 with no size/direction
hints
==31959==    This could cause spurious value errors to appear.
==31959==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a
proper wrapper.
==31959== Warning: noted but unhandled ioctl 0x8946 with no size/direction
hints
==31959==    This could cause spurious value errors to appear.
==31959==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a
proper wrapper.
IPVS initialization for duplicate registration (lvsNumServices,
lvsNumServices)NET-SNMP version 5.5
==31959== Invalid read of size 4
==31959==    at 0x4EDB8FE: tcpConnectionState_get (tcpConnectionTable.c:523)
==31959==    by 0x4F0ACFF: _mfd_tcpConnectionTable_get_values
(tcpConnectionTable_interface.c:885)
==31959==    by 0x4C1FA97: _baby_steps_access_multiplexer (baby_steps.c:460)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x4C1FDB3: _baby_steps_helper (baby_steps.c:279)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x4C2C1C1: _container_table_handler (table_container.c:655)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x4C2888B: table_helper_handler (table.c:642)
==31959==    by 0x3841A1D436: netsnmp_call_handlers (agent_handler.c:440)
==31959==    by 0x3841A0DBAE: handle_var_requests (snmp_agent.c:2611)
==31959==  Address 0x55C7DD4 is 44 bytes inside a block of size 64 free'd
==31959==    at 0x4A0541E: free (vg_replace_malloc.c:233)
==31959==    by 0x5247838: _ba_clear (container_binary_array.c:327)
==31959==    by 0x4F06C59: netsnmp_access_tcpconn_container_free
(container.h:475)
==31959==    by 0x4F0B2B8: tcpConnectionTable_container_load
(tcpConnectionTable_data_access.c:259)
==31959==    by 0x4C207B3: _cache_load (cache_handler.c:570)
==31959==    by 0x4C212EF: netsnmp_cache_helper_handler
(cache_handler.c:512)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x4C2888B: table_helper_handler (table.c:642)
==31959==    by 0x3841A1D436: netsnmp_call_handlers (agent_handler.c:440)
==31959==    by 0x3841A0DBAE: handle_var_requests (snmp_agent.c:2611)
==31959==    by 0x3841A0ECAF: handle_getnext_loop (snmp_agent.c:3051)
==31959==    by 0x3841A11697: netsnmp_handle_request (snmp_agent.c:3203)
==31959==
==31959== Invalid read of size 4
==31959==    at 0x4EDB7CE: tcpConnectionProcess_get
(tcpConnectionTable.c:580)
==31959==    by 0x4F0AD90: _mfd_tcpConnectionTable_get_values
(tcpConnectionTable_interface.c:895)
==31959==    by 0x4C1FA97: _baby_steps_access_multiplexer (baby_steps.c:460)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x4C1FDB3: _baby_steps_helper (baby_steps.c:279)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x4C2C1C1: _container_table_handler (table_container.c:655)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x4C2888B: table_helper_handler (table.c:642)
==31959==    by 0x3841A1D436: netsnmp_call_handlers (agent_handler.c:440)
==31959==    by 0x3841A0DBAE: handle_var_requests (snmp_agent.c:2611)
==31959==  Address 0x55C7DD8 is 48 bytes inside a block of size 64 free'd
==31959==    at 0x4A0541E: free (vg_replace_malloc.c:233)
==31959==    by 0x5247838: _ba_clear (container_binary_array.c:327)
==31959==    by 0x4F06C59: netsnmp_access_tcpconn_container_free
(container.h:475)
==31959==    by 0x4F0B2B8: tcpConnectionTable_container_load
(tcpConnectionTable_data_access.c:259)
==31959==    by 0x4C207B3: _cache_load (cache_handler.c:570)
==31959==    by 0x4C212EF: netsnmp_cache_helper_handler
(cache_handler.c:512)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x4C2888B: table_helper_handler (table.c:642)
==31959==    by 0x3841A1D436: netsnmp_call_handlers (agent_handler.c:440)
==31959==    by 0x3841A0DBAE: handle_var_requests (snmp_agent.c:2611)
==31959==    by 0x3841A0ECAF: handle_getnext_loop (snmp_agent.c:3051)
==31959==    by 0x3841A11697: netsnmp_handle_request (snmp_agent.c:3203)
==31959==
==31959== Invalid read of size 4
==31959==    at 0x4EDC2BE: tcpListenerProcess_get (tcpListenerTable.c:434)
==31959==    by 0x4F0CEB8: _mfd_tcpListenerTable_get_values
(tcpListenerTable_interface.c:708)
==31959==    by 0x4C1FA97: _baby_steps_access_multiplexer (baby_steps.c:460)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x4C1FDB3: _baby_steps_helper (baby_steps.c:279)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x4C2C1C1: _container_table_handler (table_container.c:655)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x4C2888B: table_helper_handler (table.c:642)
==31959==    by 0x3841A1D436: netsnmp_call_handlers (agent_handler.c:440)
==31959==    by 0x3841A0DBAE: handle_var_requests (snmp_agent.c:2611)
==31959==  Address 0x55E6008 is 48 bytes inside a block of size 64 free'd
==31959==    at 0x4A0541E: free (vg_replace_malloc.c:233)
==31959==    by 0x5247838: _ba_clear (container_binary_array.c:327)
==31959==    by 0x4F06C59: netsnmp_access_tcpconn_container_free
(container.h:475)
==31959==    by 0x4F0D538: tcpListenerTable_container_load
(tcpListenerTable_data_access.c:257)
==31959==    by 0x4C207B3: _cache_load (cache_handler.c:570)
==31959==    by 0x4C212EF: netsnmp_cache_helper_handler
(cache_handler.c:512)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x4C2888B: table_helper_handler (table.c:642)
==31959==    by 0x3841A1D436: netsnmp_call_handlers (agent_handler.c:440)
==31959==    by 0x3841A0DBAE: handle_var_requests (snmp_agent.c:2611)
==31959==    by 0x3841A0ECAF: handle_getnext_loop (snmp_agent.c:3051)
==31959==    by 0x3841A11697: netsnmp_handle_request (snmp_agent.c:3203)
^CReceived TERM or STOP signal...  shutting down...
==31959==
==31959== ERROR SUMMARY: 63 errors from 3 contexts (suppressed: 7 from 1)
==31959== malloc/free: in use at exit: 4,253,426 bytes in 55,160 blocks.
==31959== malloc/free: 178,215 allocs, 123,055 frees, 161,081,176 bytes
allocated.
==31959== For counts of detected errors, rerun with: -v
==31959== searching for pointers to 55,160 not-freed blocks.
==31959== checked 5,210,152 bytes.
==31959==
==31959==
==31959== 1 bytes in 1 blocks are definitely lost in loss record 1 of 121
==31959==    at 0x4A04B32: calloc (vg_replace_malloc.c:279)
==31959==    by 0x3841A10260: init_master_agent (snmp_agent.c:1261)
==31959==    by 0x403512: main (snmpd.c:920)
==31959==
==31959==
==31959== 5 bytes in 1 blocks are definitely lost in loss record 3 of 121
==31959==    at 0x4A05809: malloc (vg_replace_malloc.c:149)
==31959==    by 0x3BDA279EDA: Perl_safesysmalloc (in
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so)
==31959==    by 0x3BDA27CEA5: Perl_savepvn (in
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so)
==31959==    by 0x3BDA23C8AA: Perl_gv_fetchpv (in
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so)
==31959==    by 0x3BDA234C47: (within
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so)
==31959==    by 0x3BDA2384B8: perl_parse (in
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so)
==31959==    by 0x3841A33D96: maybe_source_perl_startup (snmp_perl.c:57)
==31959==    by 0x3841A33F64: do_something_perlish (snmp_perl.c:81)
==31959==    by 0x5221242: run_config_handler (read_config.c:506)
==31959==    by 0x5221433: read_config (read_config.c:778)
==31959==    by 0x5221C14: read_config_files_in_path (read_config.c:1106)
==31959==    by 0x5221E6F: read_config_files (read_config.c:1187)
==31959==
==31959==
==31959== 18 bytes in 1 blocks are definitely lost in loss record 11 of 121
==31959==    at 0x4A05809: malloc (vg_replace_malloc.c:149)
==31959==    by 0x4EE6D1B: if_mib_container_init (ifTable_interface.c:1934)
==31959==    by 0x4EE6EA5: _ifTable_initialize_interface
(ifTable_interface.c:205)
==31959==    by 0x4EBC132: initialize_table_ifTable (ifTable.c:144)
==31959==    by 0x4EBC390: init_ifTable (ifTable.c:88)
==31959==    by 0x4F17A84: init_mib_modules (mib_module_inits.h:80)
==31959==    by 0x4034FE: main (snmpd.c:913)
==31959==
==31959==
==31959== 32 bytes in 2 blocks are definitely lost in loss record 42 of 121
==31959==    at 0x4A04B32: calloc (vg_replace_malloc.c:279)
==31959==    by 0x4C26A62: netsnmp_get_scalar_group_handler
(scalar_group.c:32)
==31959==    by 0x4C26AD6: netsnmp_register_scalar_group (scalar_group.c:51)
==31959==    by 0x4E6B0A0: init_snmpMPDStats_5_5 (snmpMPDStats_5_5.c:30)
==31959==    by 0x4F17F64: init_mib_modules (mib_module_inits.h:2)
==31959==    by 0x4034FE: main (snmpd.c:913)
==31959==
==31959==
==31959== 40 bytes in 1 blocks are definitely lost in loss record 43 of 121
==31959==    at 0x4A05809: malloc (vg_replace_malloc.c:149)
==31959==    by 0x5224DE9: memdup (tools.c:244)
==31959==    by 0x4C253EA: netsnmp_register_old_api (old_api.c:74)
==31959==    by 0x3841A142E7: register_mib_range (agent_registry.c:996)
==31959==    by 0x3841A14319: register_mib_priority (agent_registry.c:1008)
==31959==    by 0x4E79330: pass_parse_config (pass.c:285)
==31959==    by 0x5221242: run_config_handler (read_config.c:506)
==31959==    by 0x5221433: read_config (read_config.c:778)
==31959==    by 0x5221C14: read_config_files_in_path (read_config.c:1106)
==31959==    by 0x5221E6F: read_config_files (read_config.c:1187)
==31959==    by 0x52230E1: read_configs (read_config.c:849)
==31959==    by 0x40350D: main (snmpd.c:918)
==31959==
==31959==
==31959== 128 bytes in 4 blocks are possibly lost in loss record 63 of 121
==31959==    at 0x4A04B32: calloc (vg_replace_malloc.c:279)
==31959==    by 0x3D45A2A227: add_routing_table_name (netlink-local.h:131)
==31959==    by 0x3D45A2A2C1: init_routing_table_names (route_utils.c:60)
==31959==    by 0x3D45A37F05: (within /usr/lib64/libnl.so.1.1)
==31959==    by 0x3D45A13342: (within /usr/lib64/libnl.so.1.1)
==31959==
==31959==
==31959== 160 (80 direct, 80 indirect) bytes in 2 blocks are definitely lost
in loss record 65 of 121
==31959==    at 0x4A04B32: calloc (vg_replace_malloc.c:279)
==31959==    by 0x52478DA: netsnmp_container_get_binary_array
(container_binary_array.c:180)
==31959==    by 0x5246E85: netsnmp_container_find (container.c:253)
==31959==    by 0x4EE068C: _snmpNotifyFilterTable_initialize_interface
(snmpNotifyFilterTable_interface.c:1886)
==31959==    by 0x4F17A94: init_mib_modules (mib_module_inits.h:79)
==31959==    by 0x4034FE: main (snmpd.c:913)
==31959==
==31959==
==31959== 160 bytes in 5 blocks are possibly lost in loss record 69 of 121
==31959==    at 0x4A04B32: calloc (vg_replace_malloc.c:279)
==31959==    by 0x3D45A2A4B7: add_proto_name (netlink-local.h:131)
==31959==    by 0x3D45A2A551: init_proto_names (route_utils.c:100)
==31959==    by 0x3D45A37F05: (within /usr/lib64/libnl.so.1.1)
==31959==    by 0x3D45A13342: (within /usr/lib64/libnl.so.1.1)
==31959==
==31959==
==31959== 225 bytes in 1 blocks are definitely lost in loss record 71 of 121
==31959==    at 0x4A05809: malloc (vg_replace_malloc.c:149)
==31959==    by 0x51E9750: snmp_clone_mem (snmp_client.c:296)
==31959==    by 0x4C27A9E: netsnmp_table_build_oid_from_index (table.c:890)
==31959==    by 0x4C2C0A5: _container_table_handler (table_container.c:523)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x4C2888B: table_helper_handler (table.c:642)
==31959==    by 0x3841A1D436: netsnmp_call_handlers (agent_handler.c:440)
==31959==    by 0x3841A0DBAE: handle_var_requests (snmp_agent.c:2611)
==31959==    by 0x3841A0ECAF: handle_getnext_loop (snmp_agent.c:3051)
==31959==    by 0x3841A11697: netsnmp_handle_request (snmp_agent.c:3203)
==31959==    by 0x3841A11AF6: handle_snmp_packet (snmp_agent.c:1929)
==31959==    by 0x520E89E: _sess_process_packet (snmp_api.c:5604)
==31959==
==31959== LEAK SUMMARY:
==31959==    definitely lost: 401 bytes in 9 blocks.
==31959==    indirectly lost: 80 bytes in 1 blocks.
==31959==      possibly lost: 288 bytes in 9 blocks.
==31959==    still reachable: 4,252,657 bytes in 55,141 blocks.
==31959==         suppressed: 0 bytes in 0 blocks.
==31959== Reachable blocks (those to which a pointer was found) are not
shown.
==31959== To see them, rerun with: --show-reachable=yes


If I only do an snmpget i get

snmpget -c public -v 2c 192.168.17.32 system.sysUpTime.0 and a couple of
others

[root@lbmaster sbin]# valgrind --tool=memcheck --leak-check=yes snmpd -f -Lo
==32134== Memcheck, a memory error detector.
==32134== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
==32134== Using LibVEX rev 1658, a library for dynamic binary translation.
==32134== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==32134== Using valgrind-3.2.1, a dynamic binary instrumentation framework.
==32134== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
==32134== For more details, rerun with: -v
==32134==
==32134== Warning: noted but unhandled ioctl 0x8946 with no size/direction
hints
==32134==    This could cause spurious value errors to appear.
==32134==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a
proper wrapper.
==32134== Warning: noted but unhandled ioctl 0x8946 with no size/direction
hints
==32134==    This could cause spurious value errors to appear.
==32134==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a
proper wrapper.
==32134== Warning: noted but unhandled ioctl 0x8946 with no size/direction
hints
==32134==    This could cause spurious value errors to appear.
==32134==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a
proper wrapper.
IPVS initialization for duplicate registration (lvsNumServices,
lvsNumServices)NET-SNMP version 5.5
^CReceived TERM or STOP signal...  shutting down...
==32134==
==32134== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 7 from 1)
==32134== malloc/free: in use at exit: 4,227,004 bytes in 55,104 blocks.
==32134== malloc/free: 108,953 allocs, 53,849 frees, 7,963,983 bytes
allocated.
==32134== For counts of detected errors, rerun with: -v
==32134== searching for pointers to 55,104 not-freed blocks.
==32134== checked 5,200,800 bytes.
==32134==
==32134== 1 bytes in 1 blocks are definitely lost in loss record 1 of 105
==32134==    at 0x4A04B32: calloc (vg_replace_malloc.c:279)
==32134==    by 0x3841A10260: init_master_agent (snmp_agent.c:1261)
==32134==    by 0x403512: main (snmpd.c:920)
==32134==
==32134==
==32134== 5 bytes in 1 blocks are definitely lost in loss record 3 of 105
==32134==    at 0x4A05809: malloc (vg_replace_malloc.c:149)
==32134==    by 0x3BDA279EDA: Perl_safesysmalloc (in
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so)
==32134==    by 0x3BDA27CEA5: Perl_savepvn (in
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so)
==32134==    by 0x3BDA23C8AA: Perl_gv_fetchpv (in
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so)
==32134==    by 0x3BDA234C47: (within
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so)
==32134==    by 0x3BDA2384B8: perl_parse (in
/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so)
==32134==    by 0x3841A33D96: maybe_source_perl_startup (snmp_perl.c:57)
==32134==    by 0x3841A33F64: do_something_perlish (snmp_perl.c:81)
==32134==    by 0x5221242: run_config_handler (read_config.c:506)
==32134==    by 0x5221433: read_config (read_config.c:778)
==32134==    by 0x5221C14: read_config_files_in_path (read_config.c:1106)
==32134==    by 0x5221E6F: read_config_files (read_config.c:1187)
==32134==
==32134==
==32134== 18 bytes in 1 blocks are definitely lost in loss record 5 of 105
==32134==    at 0x4A05809: malloc (vg_replace_malloc.c:149)
==32134==    by 0x4EE6D1B: if_mib_container_init (ifTable_interface.c:1934)
==32134==    by 0x4EE6EA5: _ifTable_initialize_interface
(ifTable_interface.c:205)
==32134==    by 0x4EBC132: initialize_table_ifTable (ifTable.c:144)
==32134==    by 0x4EBC390: init_ifTable (ifTable.c:88)
==32134==    by 0x4F17A84: init_mib_modules (mib_module_inits.h:80)
==32134==    by 0x4034FE: main (snmpd.c:913)
==32134==
==32134==
==32134== 32 bytes in 2 blocks are definitely lost in loss record 35 of 105
==32134==    at 0x4A04B32: calloc (vg_replace_malloc.c:279)
==32134==    by 0x4C26A62: netsnmp_get_scalar_group_handler
(scalar_group.c:32)
==32134==    by 0x4C26AD6: netsnmp_register_scalar_group (scalar_group.c:51)
==32134==    by 0x4E6B0A0: init_snmpMPDStats_5_5 (snmpMPDStats_5_5.c:30)
==32134==    by 0x4F17F64: init_mib_modules (mib_module_inits.h:2)
==32134==    by 0x4034FE: main (snmpd.c:913)
==32134==
==32134==
==32134== 40 bytes in 1 blocks are definitely lost in loss record 36 of 105
==32134==    at 0x4A05809: malloc (vg_replace_malloc.c:149)
==32134==    by 0x5224DE9: memdup (tools.c:244)
==32134==    by 0x4C253EA: netsnmp_register_old_api (old_api.c:74)
==32134==    by 0x3841A142E7: register_mib_range (agent_registry.c:996)
==32134==    by 0x3841A14319: register_mib_priority (agent_registry.c:1008)
==32134==    by 0x4E79330: pass_parse_config (pass.c:285)
==32134==    by 0x5221242: run_config_handler (read_config.c:506)
==32134==    by 0x5221433: read_config (read_config.c:778)
==32134==    by 0x5221C14: read_config_files_in_path (read_config.c:1106)
==32134==    by 0x5221E6F: read_config_files (read_config.c:1187)
==32134==    by 0x52230E1: read_configs (read_config.c:849)
==32134==    by 0x40350D: main (snmpd.c:918)
==32134==
==32134==
==32134== 128 bytes in 4 blocks are possibly lost in loss record 56 of 105
==32134==    at 0x4A04B32: calloc (vg_replace_malloc.c:279)
==32134==    by 0x3D45A2A227: add_routing_table_name (netlink-local.h:131)
==32134==    by 0x3D45A2A2C1: init_routing_table_names (route_utils.c:60)
==32134==    by 0x3D45A37F05: (within /usr/lib64/libnl.so.1.1)
==32134==    by 0x3D45A13342: (within /usr/lib64/libnl.so.1.1)
==32134==
==32134==
==32134== 160 (80 direct, 80 indirect) bytes in 2 blocks are definitely lost
in loss record 58 of 105
==32134==    at 0x4A04B32: calloc (vg_replace_malloc.c:279)
==32134==    by 0x52478DA: netsnmp_container_get_binary_array
(container_binary_array.c:180)
==32134==    by 0x5246E85: netsnmp_container_find (container.c:253)
==32134==    by 0x4EE068C: _snmpNotifyFilterTable_initialize_interface
(snmpNotifyFilterTable_interface.c:1886)
==32134==    by 0x4F17A94: init_mib_modules (mib_module_inits.h:79)
==32134==    by 0x4034FE: main (snmpd.c:913)
==32134==
==32134==
==32134== 160 bytes in 5 blocks are possibly lost in loss record 62 of 105
==32134==    at 0x4A04B32: calloc (vg_replace_malloc.c:279)
==32134==    by 0x3D45A2A4B7: add_proto_name (netlink-local.h:131)
==32134==    by 0x3D45A2A551: init_proto_names (route_utils.c:100)
==32134==    by 0x3D45A37F05: (within /usr/lib64/libnl.so.1.1)
==32134==    by 0x3D45A13342: (within /usr/lib64/libnl.so.1.1)
==32134==
==32134== LEAK SUMMARY:
==32134==    definitely lost: 176 bytes in 8 blocks.
==32134==    indirectly lost: 80 bytes in 1 blocks.
==32134==      possibly lost: 288 bytes in 9 blocks.
==32134==    still reachable: 4,226,460 bytes in 55,086 blocks.
==32134==         suppressed: 0 bytes in 0 blocks.
==32134== Reachable blocks (those to which a pointer was found) are not
shown.
==32134== To see them, rerun with: --show-reachable=yes

as you can see the last section

==31959== 225 bytes in 1 blocks are definitely lost in loss record 71 of 121
==31959==    at 0x4A05809: malloc (vg_replace_malloc.c:149)
==31959==    by 0x51E9750: snmp_clone_mem (snmp_client.c:296)
==31959==    by 0x4C27A9E: netsnmp_table_build_oid_from_index (table.c:890)
==31959==    by 0x4C2C0A5: _container_table_handler (table_container.c:523)
==31959==    by 0x3841A1DBCD: netsnmp_call_next_handler
(agent_handler.c:440)
==31959==    by 0x4C2888B: table_helper_handler (table.c:642)
==31959==    by 0x3841A1D436: netsnmp_call_handlers (agent_handler.c:440)
==31959==    by 0x3841A0DBAE: handle_var_requests (snmp_agent.c:2611)
==31959==    by 0x3841A0ECAF: handle_getnext_loop (snmp_agent.c:3051)
==31959==    by 0x3841A11697: netsnmp_handle_request (snmp_agent.c:3203)
==31959==    by 0x3841A11AF6: handle_snmp_packet (snmp_agent.c:1929)
==31959==    by 0x520E89E: _sess_process_packet (snmp_api.c:5604)

is missing when I do the snmpget. The above section which i see when i do an
snmpwalk increases by 225 bytes each time I run the query so im pritty sure
im looking in the right place.

Does anyone have any ideas where to go from here??

Mark



On 5 May 2010 12:30, Mark Brooks <[email protected]> wrote:

> Hi there, we have been doing some testing and it looks like there is a leak
> somewhere, I believe its made worse by the LVS module.
>
> The leak data spreadsheet was recorded over a weekend, with continuous
> polling snmpwalk with a simple script that just looped the command over and
> over, one with LVS SNMP module enabled and one with it disabled. As you can
> see there is an increase in memory consumption in both conditions.
>
>
>
> Could someone kindly help us figure this out
>
> Thanks
>
> Mark
>
>
>
>
> On 29 April 2010 00:59, Mike Ayers <[email protected]> wrote:
>
>> > From: Mark Brooks [mailto:[email protected]]
>> > Sent: Wednesday, April 28, 2010 1:27 PM
>>
>> > We are running the 2.6.32.7 kernel with Centos 5.3 and using the LVS
>> > SNMP module http://kb.linuxvirtualserver.org/wiki/Net-SNMP-LVS-Module
>> > the memory usage increases each time we use snmpwalk to poll the system,
>> > and increases with each query until the box crashes. Has anyone else
>> > come across this issue. Or could kindly push us in the right direction
>> > as where to look next.
>>
>>         Run snmpd without the dlmod for the LVS module and try the same
>> test.  If there is no memory leak, then the problem is with with the LVS
>> module, and you'll have to get support from them.  If not, let us know.
>>
>>
>>        HTH,
>>
>> Mike
>>
>>
>

------------------------------------------------------------------------------

_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.