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

Re: syncrepl with aliased objects



Dieter Klünter wrote:
Hi,
I'm trying to set up a backup server as syncrepl consumer and face some strange replication behaviour with aliased objects. Consumer and provider are openldap-2.4.2alpha, consumer is in refreshAndPersist mode.
When creating a user object and an aliased object on the provider, only the user object is being replicated, but not the aliased object. only if if the consumer is restarted, the aliased object is being replicated.


Following is a consumer log after a restart, the user object cn=Joe Smith is found, and now the aliased object cn=Smith Joe is added.
How can this be solved?

Hm, the provider should never follow aliases, it should send them as-is. Must be a bug there. In Persist mode, changes are checked against the scope of the original sync search. If the target entry isn't inside the scope of the search, it will not be sent to the consumer. The provider has no way of knowing that an entry outside of the scope is pointed to by an alias inside the scope.


During the Refresh phase, the entire search is run as normal, and (apparently) the alias gets dereferenced at that time. As I said above, it shouldn't do that.

Jan 18 11:14:51 magenta slapd[20149]: <= bdb_equality_candidates: (entryCSN) index_param failed (18)
Jan 18 11:14:51 magenta slapd[20149]: <= bdb_inequality_candidates: (entryCSN) index_param failed (18)
Jan 18 11:14:51 magenta slapd[21564]: <= bdb_equality_candidates: (entryUUID) index_param failed (18)

PS: you're missing eq indices for entryCSN and entryUUID.

--
  -- Howard Chu
  Chief Architect, Symas Corp.  http://www.symas.com
  Director, Highland Sun        http://highlandsun.com/hyc
  OpenLDAP Core Team            http://www.openldap.org/project/