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?
-Dieter
.-.--.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- Jan 18 11:14:51 magenta slapd[21564]: slapd starting 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[20149]: <= bdb_inequality_candidates: (entryCSN) index_param failed (18) Jan 18 11:14:51 magenta slapd[20149]: Entry cn=Joe Smith,ou=organisation 1,dc=my-domain,dc=com CSN 20070118100247Z#000000#00#000000 mat ches ctx 20070118100247Z#000000#00#000000 Jan 18 11:14:51 magenta slapd[21564]: do_syncrep2: LDAP_RES_INTERMEDIATE - SYNC_ID_SET Jan 18 11:14:51 magenta slapd[21564]: syncrepl_entry: LDAP_RES_SEARCH_ENTRY(LDAP_SYNC_ADD) Jan 18 11:14:51 magenta slapd[21564]: syncrepl_entry: inserted UUID 345a79f6-3b27-102b-976c-7ffb80c3fc40 Jan 18 11:14:51 magenta slapd[21564]: <= bdb_equality_candidates: (entryUUID) index_param failed (18) Jan 18 11:14:51 magenta slapd[21564]: syncrepl_entry: be_search (0) Jan 18 11:14:51 magenta slapd[21564]: syncrepl_entry: cn=Smith Joe,ou=organisation 2,dc=my-domain,dc=com Jan 18 11:14:51 magenta slapd[21564]: syncrepl_entry: be_add (0) Jan 18 11:14:51 magenta slapd[21564]: do_syncrep2: LDAP_RES_INTERMEDIATE - REFRESH_PRESENT
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.
openldap-software@openldap.org