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

Reply via email to