Full_Name: Frank Henderson Version: 1.1.1 OS: SunOS 5.6 URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (131.204.85.131) slapd ran great while testing (no crashes). once in production it dies randomly but fairly often. I have several backtraces and I am collecting debug output now. Our database has approx 30,000 entries. slapd.conf lines: database ldbm index cn eq,sub,pres,approx index sn eq,sub,approx suffix "o=Auburn University, c=US" dbcachesize 10000000 cachesize 50000 --------------------------------- Core was generated by `/usr/local/libexec/slapd'. Program terminated with signal 9, Killed. Reading symbols from /usr/lib/libthread.so.1...done. Reading symbols from /usr/lib/libresolv.so.2...done. Reading symbols from /usr/lib/libnsl.so.1...done. Reading symbols from /usr/lib/libsocket.so.1...done. Reading symbols from /usr/lib/libpthread.so.1...done. Reading symbols from /usr/lib/libposix4.so.1...done. Reading symbols from /usr/lib/libc.so.1...done. Reading symbols from /usr/lib/libdl.so.1...done. Reading symbols from /usr/lib/libmp.so.2...done. Reading symbols from /usr/lib/libaio.so.1...done. Reading symbols from /usr/platform/SUNW,Ultra-1/lib/libc_psr.so.1...done. #0 0xef5a4674 in strlen () (gdb) bt #0 0xef5a4674 in strlen () #1 0xef5ce230 in _strdup () #2 0x25f84 in ch_strdup (string=0x0) at ch_malloc.c:72 #3 0x31ee8 in dn2id (be=0x94a00, dn=0x0) at dn2id.c:76 #4 0x3245c in dn2entry (be=0x94a00, dn=0x0, matched=0xeda0bb8c, rw=0) at dn2id.c:177 #5 0x3250c in dn2entry_r (be=0x94a00, dn=0x0, matched=0xeda0bb8c) at dn2id.c:210 #6 0x38c74 in derefDN (be=0x94a00, conn=0x997b8, op=0x762ac40, dn=0x829b340 "c=US,o=Auburn University,ou=students,o=Auburn University,c=US") at alias.c:212 #7 0x37964 in ldbm_back_search (be=0x94a00, conn=0x997b8, op=0x762ac40, base=0x829b340 "c=US,o=Auburn University,ou=students,o=Auburn University,c=US", scope=0, deref=2, slimit=10000, tlimit=420, filter=0x831c570, filterstr=0x75a4ef0 "(objectclass=*)", attrs=0x0, attrsonly=0) at search.c:82 #8 0x1e450 in do_search (conn=0x997b8, op=0x762ac40) at search.c:169 #9 0x1d84c in connection_operation (arg_v=0x831e418) at connection.c:74 debug output: (not sure how much is needed, more is available 14meg) ------------------------------------------ send_ldap_result 0:: do_unbind do_bind do_bind: version 2 dn () method 128 send_ldap_result 0:: do_search send_ldap_result 9::Referral: ldap://ldap.itd.umich.edu do_search <= dereferencing dn c=US,o=Auburn University,ou=students,o=Auburn University,c=US dn2entry_r: dn: c=US,o=Auburn University,ou=students,o=Auburn University,c=US => dn2id( "c=US,o=Auburn University,ou=students,o=Auburn University,c=US" ) => ldbm_cache_open( "/usr/local/x500_data/dn2id.dbb", 7, 600 ) <= ldbm_cache_open (cache 0) <= dn2id NOID dn2entry_r: dn: o=Auburn University,ou=students,o=Auburn University,c=US => dn2id( "o=Auburn University,ou=students,o=Auburn University,c=US" ) => ldbm_cache_open( "/usr/local/x500_data/dn2id.dbb", 7, 600 ) <= ldbm_cache_open (cache 0) <= dn2id NOID dn2entry_r: dn: ou=students,o=Auburn University,c=US => dn2id( "ou=students,o=Auburn University,c=US" ) => ldbm_cache_open( "/usr/local/x500_data/dn2id.dbb", 7, 600 ) <= ldbm_cache_open (cache 0) <= dn2id 3 => id2entry_r( 3 ) ====> cache_find_entry_dn2id: found id: 3 rw: 0 <= id2entry_r 0x3da49e0 (cache) ====> cache_return_entry_r dn2entry_r: dn: ou=students,o=Auburn University,c=US => dn2id( "ou=students,o=Auburn University,c=US" ) => ldbm_cache_open( "/usr/local/x500_data/dn2id.dbb", 7, 600 ) <= ldbm_cache_open (cache 0) <= dn2id 3 => id2entry_r( 3 ) ====> cache_find_entry_dn2id: found id: 3 rw: 0 <= id2entry_r 0x3da49e0 (cache) <= matched ou=students,o=Auburn University,c=US <= remainder c=US,o=Auburn University, <= checking for alias for dn ou=Students, o=Auburn University, c=US <= l&g we have ou=students,o=Auburn University,c=US vs ou=Students, o=Auburn University, c=US ====> cache_return_entry_r <= expanded to c=US,o=Auburn University,ou=Students, o=Auburn University, c=US ====> cache_return_entry_r dn2entry_r: dn: c=US,o=Auburn University,ou=Students, o=Auburn University, c=US => dn2id( "c=US,o=Auburn University,ou=Students, o=Auburn University, c=US" ) => ldbm_cache_open( "/usr/local/x500_data/dn2id.dbb", 7, 600 ) <= ldbm_cache_open (cache 0) <= dn2id NOID dn2entry_r: dn: o=Auburn University,ou=Students, o=Auburn University, c=US => dn2id( "o=Auburn University,ou=Students, o=Auburn University, c=US" ) => ldbm_cache_open( "/usr/local/x500_data/dn2id.dbb", 7, 600 ) <= ldbm_cache_open (cache 0) <= dn2id NOID dn2entry_r: dn: ou=Students, o=Auburn University, c=US => dn2id( "ou=Students, o=Auburn University, c=US" ) => ldbm_cache_open( "/usr/local/x500_data/dn2id.dbb", 7, 600 ) <= ldbm_cache_open (cache 0) <= dn2id 3 => id2entry_r( 3 ) ====> cache_find_entry_dn2id: found id: 3 rw: 0 <= id2entry_r 0x3da49e0 (cache) ====> cache_return_entry_r dn2entry_r: dn: ou=Students, o=Auburn University, c=US => dn2id( "ou=Students, o=Auburn University, c=US" ) => ldbm_cache_open( "/usr/local/x500_data/dn2id.dbb", 7, 600 ) <= ldbm_cache_open (cache 0) <= dn2id 3 => id2entry_r( 3 ) ====> cache_find_entry_dn2id: found id: 3 rw: 0 <= id2entry_r 0x3da49e0 (cache) <= matched ou=Students, o=Auburn University, c=US <= remainder c=US,o=Auburn University, <= checking for alias for dn ou=Students, o=Auburn University, c=US <= l&g we have ou=Students, o=Auburn University, c=US vs ou=Students, o=Auburn University, c=US ====> cache_return_entry_r ====> cache_return_entry_r dn2entry_r: dn: Segmentation Fault (core dumped)
changed notes
moved from Incoming to Software Bugs
The following patch has been applied to OpenLDAP Release Engineering branch to resolve the slapd derefDN() crash. http://www.openldap.org/devel/cvsweb.cgi/servers/slapd/back-ldbm/alias.c.diff?r1=1.3.4.8.2.3&r2=1.3.4.8.2.4&hideattic=1&sortbydate=0
changed state Open to Release
Please test 1.2.1
changed notes changed state Release to Closed
derefDN bug, see ITS#83 Fixed in 1.2.1