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

Re: (ITS#5942) URI matching of "self" in add_syncrepl is incomplete



Le Jeu 12 février 2009 20:41, Howard Chu a écrit :
> 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?
>>
>> Otherwise, we should probably document this behaviour, to avoid
>> headaches :)
>
> The manpage says the serverID URL must use an FQDN. We already do a number
> of
> guesses in the code, I don't see any reason to extend this further.

I'm sorry, but I was not referring to the serverID URI matching. I'm
referring to syncrepl provider matching to listeners.

I mentioned the serverID matching since it seems to work like syncrepl
provider matching should.

Regards,
Jonathan