[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
>~~
>
>
>
>