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

Re: referral mess in HEAD



Ny suggestion is to focus on getting LDAPv3 working right.
Getting LDAPv2+ working right is impossible as the design
of LDAPv2+ is flawed.  The client cannot tell the difference
between a LDAPv2+ referral and an LDAPv2+ search continuation.

At 02:43 AM 2002-05-02, Howard Chu wrote:
>There are still a bunch of problems with referrals, I still got into a hang
>in ldapsearch waiting in select after all outstanding requests had
>completed. There is also an abort situation, which appears to be due to
>mixing V2 and V3 referrals in response to a single query. (The V2 referrals
>come from the global referral directive in slapd.conf.) Shouldn't slapd be
>returning the global referral in V3 format on a V3 query?

Yes.


>I created this test environment based on email from Stephan Austermühle
>[au@hcsd.de]:
>
>- Server 1 (Port 389):
> Base DN: ou=hamburg,o=eg,o=airbus
> Global Referral: ldap://127.0.0.1:10389
>
>- Server 2 (Port 390):
> Base DN: ou=bremen,o=eg,o=airbus
> Global Referral: ldap://127.0.0.1:10389
>
>- Server 3 (Port 10389):
> Base DN: o=eg,o=airbus
> Global Referral: ldap://127.0.0.1:20389
> This server has two smart referrals set:
> (1) dn: ou=bremen,o=eg,o=airbus
> ref: ldap://127.0.0.1:390/ou=bremen,o=eg,o=airbus
> (2) dn: ou=hamburg,o=eg,o=airbus
> ref: ldap://127.0.0.1:389/ou=hamburg,o=eg,o=airbus
>
> - Server 4 (Port 20389):
> Base DN: o=airbus
> This server has one smart referral set:
> dn: ou=eg,o=airbus
> ref: ldap://127.0.0.1:10389/ou=eg,o=airbus
>
>Here are some results I've obtained so far
> ldapsearch -C -x
> -H ldap://:20389
>   -b o=airbus          returns full tree minus ou=hamburg branch
>   -b o=eg,o=airbus     returns o=eg,o=airbus subtree minus ou=hamburg
>branch
>   -b ou=bremen,o=eg,o=airbus           returns branch correctly
>   -b ou=hamburg,o=eg,o=airbus  returns branch correctly
> -H ldap://:10389
>   -b o=airbus          returns o=airbus, then abort at sockbuf.c:82
>   -b o=eg,o=airbus     returns subtree minus ou=hamburg then hangs
>   -b ou=bremen,o=eg,o=airbus           returns branch correctly
>   -b ou=hamburg,o=eg,o=airbus  returns branch correctly
> -H ldap://:390
>   -b o=airbus          returns o=airbus, then abort at sockbuf.c:82
>   -b o=eg,o=airbus     returns subtree minus ou=hamburg branch
>   -b ou=bremen,o=eg,o=airbus           returns branch correctly
>   -b ou=hamburg,o=eg,o=airbus  returns branch correctly
> -H ldap://:389  same as ldap://:390
>
> ldapsearch -C -x -P 2 produces consistent results for all combinations,
>it's
>the exact same as the "-H ldap://:20389"; case above.
>
>So, my fix for the ldapsearch hang is wrong, and there's something else
>going on as well with V2/V3 mixing, and some referrals don't get chased (due
>to my hang patch I believe). Helpful ideas, anyone?
>
>  -- Howard Chu
>  Chief Architect, Symas Corp.       Director, Highland Sun
>  http://www.symas.com               http://highlandsun.com/hyc
>  Symas: Premier OpenSource Development and Support