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

Re: ldapdelete / referrals (ITS#553)



I believe this was fixed in OpenLDAP 1.2.10.
See ITS#471 for details.  Please test.  

	Kurt

At 01:37 PM 6/1/00 GMT, dgress@cisco.com wrote:
>Full_Name: Dave Gress
>Version: 1.2.9
>OS: sun
>URL: ftp://ftp.openldap.org/incoming/
>Submission from: (NULL) (161.44.224.244)
>
>
>ldapdelete always returns "removed" if a entry is referred to a consumer
>database.
>Entry however is not removed.
>
>ex:
>ldapdelete -v -D "cn=Directory Manager" -p389 -hsystem1 -wmypass
>"billingnumber=1234567890,uniqueidentifier=Test#0000001234567890,o=Test,c=US"
>
>
>ldap_send_initial_request
>open_ldap_connection
>ldap_connect_to_host: sgi-supptm1:389
>sd 5 connected to: 1.2.3.4
>ldap_delayed_open successful, ld_host is (null)
>ldap_send_server_request
>ber_flush: 45 bytes to sd 5
>         0  + 02 01 01  `  & 02 01 02 04 14  c  n  =  D
>         i  r  e  c  t  o  r  y 20  M  a  n  a  g  e  r
>        80 0b  m y p a s s
>ldap_result
>wait4msg (infinite timeout)
>** Connections:
>* host: system1  port: 389  (default)
>  refcnt: 2  status: Connected
>  last used: Thu Jun  1 09:15:42 2000
>
>** Outstanding Requests:
> * msgid 1,  origid 1, status InProgress
>   outstanding referrals 0, parent count 0
>** Response Queue:
>   Empty
>do_ldap_select
>read1msg
>ber_get_next
>ber_get_next: tag 0x30 len 12 contents:
>ber_dump: buf 0x2c960, ptr 0x2c960, end 0x2c96c
>          current len 12, contents:
>        02 01 01  a 07 0a 01 00 04 00 04 00
>got result msgid 1, original id 1
>new result:  res_errno: 0, res_error: <>, res_matched: <>
>read1msg:  0 new referrals
>request 1 done
>res_errno: 0, res_error: <>, res_matched: <>
>ldap_free_request (origid 1, msgid 1)      
>ldap_result2error
>ldap_msgfree
>ldap_delete
>ldap_send_initial_request
>ldap_send_server_request
>ber_flush: 86 bytes to sd 5
>         0  T 02 01 02  J  O  b  i  l  l  i  n  g  n  u
>         m  b  e  r  =  1  2  3  4  5  6  7  8  9  0  ,
>         u  n  i  q  u  e  i  d  e  n  t  i  f  i  e  r
>         =  T  e  s  t  #  0  1  2  3  4  5  6  7  8  9
>         0  ,  o  =  T  e  s  t  ,  c  =  U  S
>ldap_result
>wait4msg (infinite timeout)
>** Connections:
>* host: system1   port: 389  (default)
>  refcnt: 2  status: Connected
>  last used: Thu Jun  1 09:15:42 2000
>
>** Outstanding Requests:
> * msgid 2,  origid 2, status InProgress
>   outstanding referrals 0, parent count 0
>** Response Queue:
>   Empty
>do_ldap_select
>read1msg
>ber_get_next
>ber_get_next: tag 0x30 len 53 contents:
>ber_dump: buf 0x32b68, ptr 0x32b68, end 0x32b9d
>          current len 53, contents:
>        02 01 02  k  0 0a 01 09 04 00 04  )  R  e  f  e
>         r  r  a  l  : 0a  l  d  a  p  :  /  /  s  g  i
>         -  s  y  s  t  s  t  .  d  a  v  e  g  .  c  o
>         m  :  3  8  9
>got result msgid 2, original id 2
>re_encode_request: new msgid 3, new dn <NONE>
>new result:  res_errno: 9, res_error: <>, res_matched: <>
>read1msg:  -1 new referrals
>ldap_unbind
>ldap_free_request (origid 2, msgid 2)
>ldap_free_connection
>ldap_send_unbind
>ber_flush: 7 bytes to sd 5
>         0 05 02 01 04  B 00
>ldap_free_connection: actually freed
>deleting entry "billingnumber=1234567890,uniqueidentifier=Test#0000001234567890
>6,o=Test,c=US"
>        removed
>
>
>
>
>+
>
>Additional info:   ber_get_stringa returns LBER_DEFAULT at 240
>
>(gdb) bt
>#0  ber_get_stringa (ber=0xefffdf08, buf=0xefffdefc) at decode.c:239
>#1  0x13ddc in re_encode_request (ld=0x2ce88, origber=0x2d1c0, msgid=3,
>dnp=0xefffdfb0)
>    at request.c:844
>#2  0x13a44 in ldap_chase_referrals (ld=0x2ce88, lr=0x2e550, errstrp=0x2e56c,
>    hadrefp=0xefffe028) at request.c:715
>#3  0x15094 in read1msg (ld=0x2ce88, msgid=2, all=1, sb=0x2e550, lc=0x2d608,
>    result=0xefffe1f4) at result.c:338
>#4  0x14db4 in wait4msg (ld=0x2ce88, msgid=2, all=1, timeout=0x2d608,
>result=0xefffe1f4)
>    at result.c:232
>#5  0x14af4 in ldap_result (ld=0x2ce88, msgid=2, all=1, timeout=0x0,
>result=0xefffe1f4)
>    at result.c:117
>#6  0x120e8 in ldap_delete_s (ld=0x2ce88,
>    dn=0xeffff52d
>"billingnumber=8035550096,uniqueidentifier=Amteva#0000000005550096,o=Amteva,c=US
>")
>at delete.c:71
>#7  0x116c4 in dodelete (ld=0x2ce88,
>    dn=0xeffff52d
>"billingnumber=8035550096,uniqueidentifier=Amteva#0000000005550096,o=Amteva,c=US
>")
>at ldapdelete.c:170
>#8  0x115b4 in main (argc=10, argv=0xeffff34c) at ldapdelete.c:136         
>
>
>
>
>234             if ( (*buf = (char *) malloc( (size_t)datalen + 1 )) == NULL )
>235                     return( LBER_DEFAULT );
>236
>237             if ( (unsigned long) ber_read( ber, *buf, datalen ) != datalen
>) {
>238                     free( *buf );
>239                     *buf = NULL;
>240                     return( LBER_DEFAULT );
>241             }
>
>
>
>(gdb) p *buf
>$1 = 0x2e648
>"llingnumber=8035550096,uniqueidentifier=Amteva#0000000005550096,o=Amteva,c=US\"
>services\".
>The \"-\" may be replaced"
>
>
>(gdb) p *ber
>$2 = {
>  ber_buf = 0x2d1f8
>"0T\002\001\002JObillingnumber=8035550096,uniqueidentifier=Amteva#00000000055500
>96,o=Amteva,c=USc=US",
>ber_ptr = 0x2d24e "c=US", ber_end = 0x2d24e "c=US",  
>  ber_sos = 0x0, ber_tag = 4294967295, ber_len = 0, ber_usertag = 0,
>ber_options = 1 '\001',
>  ber_rwptr = 0x2d24e "c=US", ber_encode_translate_proc = 0,
>ber_decode_translate_proc = 0}
>(gdb)
>
>
>(gdb) p datalen
>$3 = 105
>~~      
>
>(gdb) p datalen
>$3 = 105
>~~       
>                      
>
>
>