[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: (ITS#5942) URI matching of "self" in add_syncrepl is incomplete
hyc@symas.com wrote:
> jclarke@linagora.com wrote:
>> Full_Name: Jonathan Clarke
>> Version: RE24
>> OS: irrelevant
>> URL: ftp://ftp.openldap.org/incoming/
>> Submission from: (NULL) (213.41.243.192)
>>
>>
>> Hi,
>>
>> When adding a syncrepl config, the function add_syncrepl performs a "check if
>> URL points to current server". This check is based on an exact match between the
>> provider parameter from the syncrepl config line, and the URIs given to slapd on
>> startup.
>>
>> If this doesn't match when it should, the database is marked as a shadow, and
>> all following updates fail with "shadow context; no update refs". This is quite
>> a pain when it happens on cn=config :)
>>
>> There are multiple cases when this happens:
>> 1) If no specific URI was specified on launch (no -h option)
>> 2) Port numbers are explicitly specified or not (":389")
>> 3) Trailing slash (for example "ldap://1.2.3.4" != "ldap://1.2.3.4/")
>> 4) IP is specified rather than DNS name ("ldap://localhost" !=
>> "ldap://127.0.0.1")
>>
>> I saw the comment in the code that clarifies this behaviour. However, it's a
>> surprising behaviour, and I think there is code to parse this kind of thing in
>> the serverID detection now. Maybe it could be reused?
Oops, never mind. I was thinking of the serverID code, and you're talking
about the syncrepl code.
I'll have to think a bit about why the two aren't behaving identically;
probably they should both use the same code.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/