Issue 107 - slapd coredumps (SunoOS5.6)
Summary: slapd coredumps (SunoOS5.6)
Status: VERIFIED FIXED
Alias: None
Product: OpenLDAP
Classification: Unclassified
Component: slapd (show other issues)
Version: unspecified
Hardware: All All
: --- normal
Target Milestone: ---
Assignee: OpenLDAP project
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 1999-03-22 15:31 UTC by hendefd@auburn.edu
Modified: 2014-08-01 21:06 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description hendefd@auburn.edu 1999-03-22 15:31:13 UTC
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)

Comment 1 Kurt Zeilenga 1999-03-26 18:50:21 UTC
changed notes
Comment 2 Kurt Zeilenga 1999-03-26 18:51:06 UTC
changed notes
Comment 3 Kurt Zeilenga 1999-03-26 18:57:19 UTC
moved from Incoming to Software Bugs
Comment 4 Kurt Zeilenga 1999-03-26 20:39:36 UTC
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


Comment 5 Kurt Zeilenga 1999-03-26 20:53:34 UTC
changed state Open to Release
Comment 6 Kurt Zeilenga 1999-03-26 20:55:04 UTC
changed notes
Comment 7 Kurt Zeilenga 1999-04-01 07:21:20 UTC
Please test 1.2.1
Comment 8 Kurt Zeilenga 1999-04-01 07:23:48 UTC
changed notes
changed state Release to Closed
Comment 9 OpenLDAP project 2014-08-01 21:06:52 UTC
derefDN bug, see ITS#83
Fixed in 1.2.1