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