Hello all, i'm using a multi-threaded application (spine, http://cacti.net/spine_info.php) on Solaris 10 which uses libnetsnmp. Pretty often the application hangs, which i traced back to a SEGV occuring in free_enums(). See below for the gdb backtrace. I already updated net-snmp from 5.3.1 to 5.4.1, but the problem still persists. Can someone tell my why the free(pp->label) line fails? It seems like a valid call to me.
Thanks, Frank # gdb /usr/local/bin/spine ../../core.spine.12453 GNU gdb 6.7.1 Copyright (C) 2007 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "sparc-sun-solaris2.10"... Reading symbols from /usr/local/lib/libnetsnmp.so.15...done. Loaded symbols for /usr/local/lib/libnetsnmp.so.15 Reading symbols from /usr/local/lib/mysql/libmysqlclient_r.so.14...done. Loaded symbols for /usr/local/lib/mysql/libmysqlclient_r.so.14 Reading symbols from /lib/librt.so.1...done. Loaded symbols for /lib/librt.so.1 Reading symbols from /lib/libgen.so.1...done. Loaded symbols for /lib/libgen.so.1 Reading symbols from /lib/libthread.so.1... warning: Lowest section in /lib/libthread.so.1 is .dynamic at 00000074 done. Loaded symbols for /lib/libthread.so.1 Reading symbols from /usr/local/lib/libssl.so.0.9.8...done. Loaded symbols for /usr/local/lib/libssl.so.0.9.8 Reading symbols from /usr/local/lib/libcrypto.so.0.9.8...done. Loaded symbols for /usr/local/lib/libcrypto.so.0.9.8 Reading symbols from /lib/libkstat.so.1...done. Loaded symbols for /lib/libkstat.so.1 Reading symbols from /usr/lib/libz.so.1...done. Loaded symbols for /usr/lib/libz.so.1 Reading symbols from /lib/libpthread.so.1... warning: Lowest section in /lib/libpthread.so.1 is .dynamic at 00000074 done. Loaded symbols for /lib/libpthread.so.1 Reading symbols from /lib/libm.so.2...done. Loaded symbols for /lib/libm.so.2 Reading symbols from /lib/libsocket.so.1...done. Loaded symbols for /lib/libsocket.so.1 Reading symbols from /lib/libnsl.so.1...done. Loaded symbols for /lib/libnsl.so.1 Reading symbols from /lib/libc.so.1...done. Loaded symbols for /lib/libc.so.1 Reading symbols from /usr/local/lib/libgcc_s.so.1...done. Loaded symbols for /usr/local/lib/libgcc_s.so.1 Reading symbols from /lib/libaio.so.1...done. Loaded symbols for /lib/libaio.so.1 Reading symbols from /lib/libmd.so.1...done. Loaded symbols for /lib/libmd.so.1 Reading symbols from /lib/libdl.so.1... warning: Lowest section in /lib/libdl.so.1 is .hash at 000000b4 done. Loaded symbols for /lib/libdl.so.1 Reading symbols from /platform/SUNW,Sun-Fire-V240/lib/libc_psr.so.1...done. Loaded symbols for /platform/SUNW,Sun-Fire-V240/lib/libc_psr.so.1 Reading symbols from /usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.3...done. Loaded symbols for /usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.3 Reading symbols from /lib/ld.so.1...done. Loaded symbols for /lib/ld.so.1 Core was generated by `/usr/local/bin/spine -R -S -f 6 -l 6 -V 5'. Program terminated with signal 11, Segmentation fault. #0 0xfec56178 in realfree () from /lib/libc.so.1 (gdb) bt #0 0xfec56178 in realfree () from /lib/libc.so.1 #1 0xfec569a0 in _free_unlocked () from /lib/libc.so.1 #2 0xfec568dc in free () from /lib/libc.so.1 #3 0xff2a60dc in free_enums (spp=0xe19a0) at parse.c:5065 #4 0xff2a6258 in free_partial_tree (tp=0xe2d50, keep_label=0) at parse.c:853 #5 0xff2a63a4 in free_tree (Tree=0xe27c0) at parse.c:878 #6 0xff2a8880 in unload_module_by_ID (modID=48, tree_top=0xe2d50) at parse.c:3999 #7 0xff2a88d0 in unload_module_by_ID (modID=48, tree_top=0xe2c70) at parse.c:3989 #8 0xff2a88d0 in unload_module_by_ID (modID=48, tree_top=0xe2c00) at parse.c:3989 #9 0xff2a88d0 in unload_module_by_ID (modID=48, tree_top=0xe2700) at parse.c:3989 #10 0xff2a88d0 in unload_module_by_ID (modID=48, tree_top=0xe2880) at parse.c:3989 #11 0xff2a88d0 in unload_module_by_ID (modID=48, tree_top=0x94420) at parse.c:3989 #12 0xff2a88d0 in unload_module_by_ID (modID=48, tree_top=0x943b0) at parse.c:3989 #13 0xff2a88d0 in unload_module_by_ID (modID=48, tree_top=0x94340) at parse.c:3989 #14 0xff2a88d0 in unload_module_by_ID (modID=48, tree_top=0x942d0) at parse.c:3989 #15 0xff2a88d0 in unload_module_by_ID (modID=48, tree_top=0x941c8) at parse.c:3989 #16 0xff2a88d0 in unload_module_by_ID (modID=48, tree_top=0x452d0) at parse.c:3989 #17 0xff2a8ba8 in unload_all_mibs () at parse.c:4071 #18 0xff29adb8 in shutdown_mib () at mib.c:2716 #19 0xff2bbbfc in snmp_shutdown (type=0x1eb08 "spine") at snmp_api.c:872 #20 0x0001586c in snmp_spine_close () at snmp.c:127 #21 0x000139e8 in main (argc=5000, argv=0xffbff320) at spine.c:608 (gdb) frame 3 #3 0xff2a60dc in free_enums (spp=0xe19a0) at parse.c:5065 warning: Source file is more recent than executable. 5065 free(pp->label); (gdb) list 5060 *spp = NULL; 5061 5062 while (pp) { 5063 npp = pp->next; 5064 if (pp->label) 5065 free(pp->label); 5066 free(pp); 5067 pp = npp; 5068 } 5069 } (gdb) print pp->next $1 = (struct enum_list *) 0x0 (gdb) print pp->label $2 = 0xe19b8 "readOnly" ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Net-snmp-users mailing list Net-snmp-users@lists.sourceforge.net Please see the following page to unsubscribe or change other options: https://lists.sourceforge.net/lists/listinfo/net-snmp-users