ando(a)sys-net.it wrote:
> ando(a)sys-net.it wrote:
>
>> Probably a side-effect of fixing ITS#5853:
>
> This seems to be unrelated from ITS#5853, actually.
Fixed now in HEAD
> Another note: if a search reference is received, it is returned by
> libldap and additionally it is chased, so one gets both the search
> reference and the chased search reference results.
2.3 does this as well, seems to be intentional.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/
Pierangelo Masarati wrote:
> hyc(a)symas.com wrote:
>> ando(a)sys-net.it wrote:
>>> Full_Name: Pierangelo Masarati
>>> Version: HEAD/re24
>>> OS: irrelevant
>>> URL: ftp://ftp.openldap.org/incoming/
>>> Submission from: (NULL) (82.63.140.131)
>>> Submitted by: ando
>>>
>>>
>>> Probably a side-effect of fixing ITS#5853: when setting LDAP_OPT_REFERRALS,
>>> libldap automatically chases any referrals, but at the end returns a response
>>> with ld_errno set to 10 and ld_matched set to the portion of DN that was matched
>>> in the initial request. This is because the corresponding fields in the parent
>>> request are not cleared when the referral is successfully chased. I'm trying to
>>> fix this, but it's not clear to me when success should be detected: at
>>> successful referral chasing request submission, I guess?
>> When does this behavior? It doesn't show up in e.g. test009...
>
> If you have a subordinate reference in server1 that points to server2
> and you search server1 using the DN of the subordinate reference. What
> I do is:
>
> - fire test003
>
> - create a slapd.2.conf with suffix "ou=Other,dc=example,dc=com"
>
> - populate server1 with
>
> dn: ou=Other,dc=example,dc=com
> objectClass: referral
> objectClass: extensibleObject
> ou: Other
> ref: ldap://:9012/ou=Other,dc=example,dc=com
>
> - populate server2 with
>
> dn: ou=Other,dc=example,dc=com
> objectClass: organizationalUnit
> ou: Other
>
> dn: cn=Foo Bar,ou=Other,dc=example,dc=com
> objectClass: device
> cn: Foo Bar
>
> - search server1 for "ou=Other,dc=example,dc=com"
According to libldap/request.c this test is invalid; find_connection will not
match URLs with empty hostname. That code has been like that for several
years. Perhaps the test for empty hostname should be dropped, but in real
deployments a referral to localhost doesn't make a lot of sense anyway.
>
> Apparently, test009 is only testing the superior reference. test016
> tests subordinate references, but without even trying -C. I think the
> test should be modified to be run once without and once with -C in order
> to test the library's behavior. I believe automatic referral chasing
> should be deprecated, but I fear there are tons of code out there that
> rely on it.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/
hyc(a)symas.com wrote:
> ando(a)sys-net.it wrote:
>> Full_Name: Pierangelo Masarati
>> Version: HEAD/re24
>> OS: irrelevant
>> URL: ftp://ftp.openldap.org/incoming/
>> Submission from: (NULL) (82.63.140.131)
>> Submitted by: ando
>>
>>
>> Probably a side-effect of fixing ITS#5853: when setting LDAP_OPT_REFERRALS,
>> libldap automatically chases any referrals, but at the end returns a response
>> with ld_errno set to 10 and ld_matched set to the portion of DN that was matched
>> in the initial request. This is because the corresponding fields in the parent
>> request are not cleared when the referral is successfully chased. I'm trying to
>> fix this, but it's not clear to me when success should be detected: at
>> successful referral chasing request submission, I guess?
>
> When does this behavior? It doesn't show up in e.g. test009...
If you have a subordinate reference in server1 that points to server2
and you search server1 using the DN of the subordinate reference. What
I do is:
- fire test003
- create a slapd.2.conf with suffix "ou=Other,dc=example,dc=com"
- populate server1 with
dn: ou=Other,dc=example,dc=com
objectClass: referral
objectClass: extensibleObject
ou: Other
ref: ldap://:9012/ou=Other,dc=example,dc=com
- populate server2 with
dn: ou=Other,dc=example,dc=com
objectClass: organizationalUnit
ou: Other
dn: cn=Foo Bar,ou=Other,dc=example,dc=com
objectClass: device
cn: Foo Bar
- search server1 for "ou=Other,dc=example,dc=com"
Apparently, test009 is only testing the superior reference. test016
tests subordinate references, but without even trying -C. I think the
test should be modified to be run once without and once with -C in order
to test the library's behavior. I believe automatic referral chasing
should be deprecated, but I fear there are tons of code out there that
rely on it.
p.
Ing. Pierangelo Masarati
OpenLDAP Core Team
SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
-----------------------------------
Office: +39 02 23998309
Mobile: +39 333 4963172
Fax: +39 0382 476497
Email: ando(a)sys-net.it
-----------------------------------
ando(a)sys-net.it wrote:
> Full_Name: Pierangelo Masarati
> Version: HEAD/re24
> OS: irrelevant
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (82.63.140.131)
> Submitted by: ando
>
>
> Probably a side-effect of fixing ITS#5853: when setting LDAP_OPT_REFERRALS,
> libldap automatically chases any referrals, but at the end returns a response
> with ld_errno set to 10 and ld_matched set to the portion of DN that was matched
> in the initial request. This is because the corresponding fields in the parent
> request are not cleared when the referral is successfully chased. I'm trying to
> fix this, but it's not clear to me when success should be detected: at
> successful referral chasing request submission, I guess?
When does this behavior? It doesn't show up in e.g. test009...
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/
Pierangelo Masarati wrote:
> Howard Chu wrote:
>> ando(a)sys-net.it wrote:
>>> ando(a)sys-net.it wrote:
>>>
>>>> Probably a side-effect of fixing ITS#5853:
>>> This seems to be unrelated from ITS#5853, actually.
>> Have you found the same behavior in earlier releases?
>
> 2.3 is OK.
> 2.4.11,15 are affected.
No relevant diff in libldap from 2.4.7 to .11. But quite a lot of changes in
result.c from 2.4.1ALPHA to 2.4.7...
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/
Full_Name:
Version: 2.4.15
OS: ubuntu
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (82.6.103.253)
I've had a number of issues getting replications working, I noticed that my
multi-homed server was trying to replicate to itself. however I was pointed to
http://www.openldap.org/its/index.cgi/?findid=5942
If the documentation could state when setting up replication that slap -H $URI
needs to match all other references, even to the point where it has to match
port, ie
ldap://ldap01 != ldap://ldap01:389
making everything match has fixed a lot of my problems.
ando(a)sys-net.it wrote:
> mariusp44(a)gmail.com wrote:
>> I have just compiled and tested 2.4.15 and result is same: cleartext,
>> md5 and sha works, smd5, ssha and crypt doesn't.
>>
>> Solaris 10 SPARC latest, gcc 3.4.3, Berkeley DB 4.7.25, opessl 0.9.8j.
>
> I have no chance to test on that arch. You should figure our why those
> hashes are not supported. Did you enable crypt (--enable-crypt)?
gcc 3.4.3 was released November 4 2004 http://gcc.gnu.org/gcc-3.4/
and is known to have many bugs. It's also already known that old gcc releases
have other problems on Sparc. (E.g. ITS#5875.)
Please use a working compiler.
As a workaround, recompile the offending functions with optimization disabled.
That usually helps in cases like this.
There is no bug in OpenLDAP Software here, this ITS will be closed.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/
Howard Chu wrote:
> ando(a)sys-net.it wrote:
>> ando(a)sys-net.it wrote:
>>
>>> Probably a side-effect of fixing ITS#5853:
>>
>> This seems to be unrelated from ITS#5853, actually.
>
> Have you found the same behavior in earlier releases?
2.3 is OK.
2.4.11,15 are affected.
>> Another note: if a search reference is received, it is returned by
>> libldap and additionally it is chased, so one gets both the search
>> reference and the chased search reference results.
>
> That certainly wouldn't have changed due to any of the recent patches.
> Probably the response gets added to the message chain unconditionally,
> but obviously doesn't belong there if chasing occurred.
p.
Ing. Pierangelo Masarati
OpenLDAP Core Team
SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
-----------------------------------
Office: +39 02 23998309
Mobile: +39 333 4963172
Fax: +39 0382 476497
Email: ando(a)sys-net.it
-----------------------------------
quanah(a)OpenLDAP.org wrote:
> Full_Name: Quanah Gibson-Mount
> Version: 2.3/2.4/HEAD
> OS: Linux 2.6
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (75.111.29.239)
>
>
> I noticed back in testing with OpenLDAP 2.3 that if a master gets a high rate of
> changes, and you have 3+ replicas, usually 2 replicas will end up getting all of
> the changes while the 3rd+ replicas have to wait until those 2 finish before
> getting changes. If the high rate of changes goes on for a long enough period
> of time, this can cause the other replicas to get so far out of sync that it is
> more efficient to reload them than to wait on them to re-sync. I discussed this
> with Howard, and in reviewing the code, he sees there's an underlying design
> issue with updates that is causing this. His comments:
>
> Once a thread for a psearch wakes up, it sends all the changes that were queued
> so it may hog an entire thread for a long time before the next psearch comes off
> the queue
>
Fixing this issue would require a complete redesign of the psearch queue
handling. Instead of queuing up a separate response per psearch, there should
be a single queue of responses, and the qplayer should iterate thru to match a
response to each of the active psearches. That would guarantee that all
replicas receive a given change before any of them receives the next change.
This would also help with the ordering issues discussed recently on -technical
and -devel.
I suspect this is too big a change to target the next (.16) release, since
we're focusing on re-stabilizing the code right now.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/