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

Re: Seg Faults with ldapdelete (ITS#53)



I was wrong about which DB is was using to get a Seg Fault.  
Configure was using Berkeley's DB rather than GDBM.  So I
recomplied it to use GDBM, recreated a directory, and now 
I don't get Seg Faults, but I get 'Operations error'.

Env:
	Solaris 2.5.1 Sparc Ultra 2
	GDBM 1.7.3

A search proves entry is in the directory:
	./ldapsearch -h phxrms2 -b 'dc=DHL,dc=com' 'uid=dhigbee'

	uid=dhigbee, dc=DHL, dc=com
	objectclass=top
	objectclass=person
	objectclass=newPilotPerson
	uid=dhigbee
	cn=Dale Higbee
	sn=Higbee
	mail=dhigbee@US

./slapd -d 133 -f ../etc/slapd.conf:
do_bind
do_bind: version 2 dn (cn=mirror,dc=DHL,dc=com) method 128
==> ldbm_back_bind: dn: cn=mirror,dc=DHL,dc=com
dn2entry_r: dn: "cn=mirror,dc=DHL,dc=com"
=> dn2id( "cn=mirror,dc=DHL,dc=com" )
=> ldbm_cache_open( "/var/tmp/dn2id.gdbm", 2, 600 )
ldbm_cache_open (blksize 8192) (maxids 2046) (maxindirect 2)
<= ldbm_cache_open (opened 0)
<= dn2id NOID
dn2entry_r: dn: "dc=DHL,dc=com"
=> dn2id( "dc=DHL,dc=com" )
=> ldbm_cache_open( "/var/tmp/dn2id.gdbm", 2, 600 )
<= ldbm_cache_open (cache 0)
<= dn2id 1
=> id2entry_r( 1 )
=> ldbm_cache_open( "/var/tmp/id2entry.gdbm", 2, 600 )
ldbm_cache_open (blksize 8192) (maxids 2046) (maxindirect 2)
<= ldbm_cache_open (opened 1)
=> str2entry
<= str2entry 0x5d828
entry_rdwr_rlock: ID: 1
<= id2entry_r( 1 ) (disk)
====> cache_return_entry_r
entry_rdwr_runlock: ID: 1
send_ldap_result 0::
do_delete
do_delete: dn (uid=dhigbee,dc=DHL,dc=com)
==> ldbm_back_delete: uid=dhigbee,dc=DHL,dc=com
dn2entry_w: dn: "uid=dhigbee,dc=DHL,dc=com"
=> dn2id( "uid=dhigbee,dc=DHL,dc=com" )
=> ldbm_cache_open( "/var/tmp/dn2id.gdbm", 2, 600 )
<= ldbm_cache_open (cache 0)
<= dn2id 16753
=> id2entry_w( 16753 )
=> ldbm_cache_open( "/var/tmp/id2entry.gdbm", 2, 600 )
<= ldbm_cache_open (cache 1)
=> str2entry
<= str2entry 0x5d680
entry_rdwr_wlock: ID: 16753
<= id2entry_w( 16753 ) (disk)
rdwr_Xchk: readers_reading: 0 writer_writing: 1
=> has_children( 16753 )
=> ldbm_cache_open( "/var/tmp/id2children.gdbm", 2, 600 )
ldbm_cache_open (blksize 8192) (maxids 2046) (maxindirect 2)
<= ldbm_cache_open (opened 2)
<= has_children 0

=> access_allowed: entry (uid=dhigbee, dc=DHL, dc=com) attr (entry)

=> acl_get: entry (uid=dhigbee, dc=DHL, dc=com) attr (entry)
<= acl_get: no acl applicable to database root

=> acl_access_allowed: write access to entry "uid=dhigbee, dc=DHL, dc=com"

=> acl_access_allowed: write access to value "any" by "cn=mirror,dc=DHL,dc=com"
<= acl_access_allowed: granted to database root

=> access_allowed: exit (uid=dhigbee, dc=DHL, dc=com) attr (entry)
rdwr_Xchk: readers_reading: 0 writer_writing: 1
dn2entry_w: dn: "dc=DHL,dc=com"
=> dn2id( "dc=DHL,dc=com" )
====> cache_find_entry_dn2id: found dn: DC=DHL,DC=COM
entry_rdwr_rlock: ID: 1
entry_rdwr_runlock: ID: 1
<= dn2id 1 (in cache)
=> id2entry_w( 1 )
====> cache_find_entry_dn2id: found id: 1 rw: 1
entry_rdwr_rlock: ID: 1
entry_rdwr_runlock: ID: 1
entry_rdwr_wlock: ID: 1
<= id2entry_w 0x5d828 (cache)
=> id2children_remove( 1, 16753 )
=> ldbm_cache_open( "/var/tmp/id2children.gdbm", 2, 600 )
<= ldbm_cache_open (cache 2)
<= id2children_remove -1 (idl_delete)
<=- ldbm_back_delete: operations error uid=dhigbee,dc=DHL,dc=com
send_ldap_result 1::
====> cache_return_entry_w
entry_rdwr_wunlock: ID: 1
====> cache_return_entry_w
entry_rdwr_wunlock: ID: 16753
do_unbind



Any ideas?

-Dale