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

delete segfaults server in 1.1.2?



All,

A quick rundown of my problem.  I can crash my running LDAP server
simply by issuing the following command:

  ldapdelete -p 391 -h 127.0.0.1 -v -w password 'pin=1814500,   
o=company.com'


The dn in the previous example exists.  The following is the servers   
backtrace
shown using the -d 1 switch:


do_bind
do_bind: version 2 dn (cn=Directory Manager) method 128
send_ldap_result 9::Referral:
ldap://infoweb.company.com:391
do_bind
do_bind: version 2 dn (cn=Directory Manager) method 128
send_ldap_result 9::Referral:
ldap://infoweb.company.com:391
do_bind
do_bind: version 2 dn (cn=Directory Manager) method 128
send_ldap_result 9::Referral:
ldap://infoweb.company.com:391
do_bind
do_bind: version 2 dn (cn=Directory Manager) method 128
send_ldap_result 9::Referral:
ldap://infoweb.company.com:391
do_bind
do_bind: version 2 dn (cn=Directory Manager) method 128
send_ldap_result 9::Referral:
ldap://infoweb.company.com:391
do_delete
dn2entry_w: dn: pmpin=1814500,o=company.com
=> dn2id( "pmpin=1814500,o=company.com" )
=> ldbm_cache_open( "/data/ldap2/dn2id.gdbm", 2, 600 )
<= ldbm_cache_open (opened 0)
<= dn2id 132757
=> id2entry_w( 132757 )
=> ldbm_cache_open( "/data/ldap2/id2entry.gdbm", 2, 600 )
<= ldbm_cache_open (opened 1)
=> str2entry
<= str2entry 0x14046f480
<= id2entry_w( 132757 ) (disk)
rdwr_Xchk: readers_reading: 0 writer_writing: 1
=> has_children( 132757 )
=> ldbm_cache_open( "/data/ldap2/id2children.gdbm", 2, 600 )
<= ldbm_cache_open (opened 2)
<= has_children 0
rdwr_Xchk: readers_reading: 0 writer_writing: 1
dn2entry_r: dn: o=company.com
=> dn2id( "o=company.com" )
=> ldbm_cache_open( "/data/ldap2/dn2id.gdbm", 2, 600 )
<= ldbm_cache_open (cache 0)
<= dn2id 5
=> id2entry_r( 5 )
=> ldbm_cache_open( "/data/ldap2/id2entry.gdbm", 2, 600 )
<= ldbm_cache_open (cache 1)
=> str2entry
<= str2entry 0x14046eee0
<= id2entry_r( 5 ) (disk)
=> id2children_remove( 5, 132757 )
=> ldbm_cache_open( "/data/ldap2/id2children.gdbm", 2, 600 )
<= ldbm_cache_open (cache 2)
Segmentation fault (core dumped)

#-- END


As you can see from the trace I am using gdbm as a backend.  I am
running the LDAP server on OSF1 V4.0.

I'd be happy to provide any information that is requested (of course!).

Some observations:
   o the database has around 140,000 entries
   o the server crashes on delete if the dn exists, but does not crash if   
the
      dn does not exist
     


Perhaps a related problem is the following:

It seems I cannot get the correct results back using ldapsearch unless
I use wildcards.

Example:

  >  ldapsearch -v \
           -h 127.0.0.1 \
           -p 391 \
           -w 'password' \
           -D 'cn=Directory Manager' \
           -b 'o=company.com' \
           'pmpin=1524358\*'

  ldap_open( 127.0.0.1, 391 )
  filter pattern: pmpin=1524358\*
  returning: ALL
  filter is: (pmpin=1524358\*)
  pmpin=1524358,o=company.com
  objectclass=top
  objectclass=CompanyPins
  pmpin=1524358

  >  ldapsearch -v \
           -h 127.0.0.1 \
           -p 391 \
           -w 'password' \
           -D 'cn=Directory Manager' \
           -b 'o=company.com' \
           'pmpin=1524358'

  ldap_open( 127.0.0.1, 391 )
  filter pattern: pmpin=1524358
  returning: ALL
  filter is: (pmpin=1524358)
  0 matches