[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: slapd crash (ITS#38)

On Thu, Jan 14, 1999 at 08:39:54PM +0000, Kurt Zeilenga wrote:
> via AnonCVS.  Would appreciate any testing you might be able to
> accomplish.

This does not help:

(gdb) r -d 769
Starting program: /home/hwr/src/openldap-rel-eng/ldap/servers/slapd/slapd -d
slapd 1.1.3-Release (Fri Jan 15 12:29:47 MET 1999)
	slapd starting
	conn=0 fd=8 connection from localhost ( accepted.
	conn=0 op=0 BIND dn="cn=Heiko Rupp,o=Xlink GmbH,c=DE" method=128
	do_bind: version 2 dn (cn=Heiko Rupp,o=Xlink GmbH,c=DE) method 128
	dn2entry_r: dn: cn=Heiko Rupp,o=Xlink GmbH,c=DE
	=> dn2id( "cn=Heiko Rupp,o=Xlink GmbH,c=DE" )
	=> ldbm_cache_open( "/var/db/ldap/dn2id.dbb", 514, 600 )
	<= ldbm_cache_open (opened 0)
	<= dn2id NOID
	dn2entry_r: dn: o=Xlink GmbH,c=DE
	=> dn2id( "o=Xlink GmbH,c=DE" )
	=> ldbm_cache_open( "/var/db/ldap/dn2id.dbb", 514, 600 )
	<= ldbm_cache_open (cache 0)
	<= dn2id 1
	=> id2entry_r( 1 )
	=> ldbm_cache_open( "/var/db/ldap/id2entry.dbb", 514, 600 )
	<= ldbm_cache_open (opened 1)
	=> str2entry
	<= str2entry 0x2e540
	<= id2entry_r( 1 ) (disk)
	====> cache_return_entry_r
	send_ldap_result 0::
	conn=0 op=0 RESULT err=0 tag=97 nentries=0
	ber_get_next on fd 8 failed errno 35 (Resource temporarily unavailable)
	*** got 98 of 120 so far
	conn=0 op=1 SRCH base="" scope=1 filter="(!(objectclass=DSA))"
	<= dereferencing dn 
	dn2entry_r: dn: 
	=> dn2id( "" )
	=> ldbm_cache_open( "/var/db/ldap/dn2id.dbb", 514, 600 )
	<= ldbm_cache_open (cache 0)
	<= dn2id NOID
	====> cache_return_entry_r
	Program received signal SIGSEGV, Segmentation fault.
	0x200ac in pthread_rdwr_runlock_np (rdwrp=0x14) at rdwr.c:49
	49              if (rdwrp->readers_reading == 0) {
	(gdb) bt
	#0  0x200ac in pthread_rdwr_runlock_np (rdwrp=0x14) at rdwr.c:49
	#1  0x70db in entry_rdwr_unlock (e=0x0, rw=0) at entry.c:271
	#2  0x1399b in cache_return_entry_rw (cache=0x3a018, e=0x0, rw=0) at
#3  0x139bc in cache_return_entry_r (cache=0x3a018, e=0x0) at cache.c:86
#4  0x1bb5e in derefDN (be=0x2a800, conn=0x2b4a0, op=0x2e400, dn=0x333d0 "")
    at alias.c:207
#5  0x1a8b6 in ldbm_back_search (be=0x2a800, conn=0x2b4a0, op=0x2e400, 
        base=0x333d0 "", scope=1, deref=2, slimit=-1, tlimit=-1,
    filterstr=0x39c00 "(!(objectclass=DSA))", attrs=0x39be0, attrsonly=0)
        at search.c:82
#6  0x41dd in do_search (conn=0x2b4a0, op=0x2e400) at search.c:148
#7  0x3776 in connection_operation (arg_v=0x37bb0) at connection.c:74
#8  0x201fb in pthread_create (tid=0x2e42c, attr=0xefbfd56c, 
	    func=0x35d0 <connection_operation>, arg=0x37bb0) at thread.c:534
#9  0x3c94 in connection_activity (conn=0x2b4a0) at connection.c:225
#10 0x332b in slapd_daemon (port=0x185) at daemon.c:365
#11 0x201fb in pthread_create (tid=0x27ff4, attr=0x0, 
	        func=0x238c <slapd_daemon>, arg=0x185) at thread.c:534
#12 0x1d5f in main (argc=3, argv=0xefbfd798) at main.c:139

(gdb) up
#1  0x70db in entry_rdwr_unlock (e=0x0, rw=0) at entry.c:271
271                     return pthread_rdwr_runlock_np(&e->e_rdwr);

I did a configure --without-threads, as NetBSD mit-pthreads from

are not liked by OpenLdap's configure:

 setenv CPPFLAGS "-I/usr/pkg/include -I/usr/pkg/pthreads/include
setenv LDFLAGS "-L/usr/pkg/lib -L/usr/pkg/pthreads/lib"

checking POSIX thread version... final
checking for pthread_create in -lpthread... yes
checking for sched_yield... yes
checking for pthread_yield... yes
checking for pthread_kill... yes
checking for pthread_detach... yes
checking for pthread_attr_create... no
checking for pthread_attr_init... yes
checking for pthread_attr_destroy... yes
checking for pthread_attr_delete... no
checking for pthread_attr_setdetachstate... yes
checking for pthread_attr_setdetach_np... no
checking for pthread_setconcurrency... no
checking for thr_setconcurrency... no
checking if pthread_create() works... no
configure: error: pthread.h and pthread_create are not compatible

(But If I understand correctly, slapd does not necessarily require threads
anyway, else it should completely fail to compile).