Hi all,
Same subject, but with a minor change :) For now, as I explain in a previous mail, it seems we have a working N-Way multimaster replication, still with some problems.
we use RE24, checked out 2 days ago.
But, even if cn=config seems to be correclty replicated, there is a problem with gluing database declarations.
We have a primary provider. Its config backend has been initialized by this command : slapd -f slapd.conf -F slapd.d. All work fine, no errors. The configuration has multiple backends (8), and some are glued.
In the slapd.conf we have something like the following :
database ldap suffix dc=example,o=test subordinate database bdb suffix o=test glue
So, in cn=config, we have :
olcDatabase={2}ldap,cn=config olcSuffix dc=example,o=test olcSubordinate TRUE olcDatabase={3}bdb,cn=config olcSuffix o=test olcOverlay={0}glue,olcDatabase={4}bdb,cn=config olcOverlay {0}glue
Fine. But when the new provider replicates the entire cn=config of the primary provider, it can not replicate this kind of configuration :
8<-------- Feb 5 10:42:37 server2 slapd[5093]: => access_allowed: add access to "olcDatabase={2}ldap,cn=config" "entry" requested Feb 5 10:42:37 server2 slapd[5093]: <= root access granted Feb 5 10:42:37 server2 slapd[5093]: => access_allowed: add access granted by manage(=mwrscxd) Feb 5 10:42:37 server2 slapd[5093]: <= acl_access_allowed: granted to database root Feb 5 10:42:37 server2 slapd[5093]: => access_allowed: add access to "cn=config" "children" requested Feb 5 10:42:37 server2 slapd[5093]: <= root access granted Feb 5 10:42:37 server2 slapd[5093]: => access_allowed: add access granted by manage(=mwrscxd) Feb 5 10:42:37 server2 slapd[5093]: >>> dnPrettyNormal: <dc=example,o=test> Feb 5 10:42:37 server2 slapd[5093]: <<< dnPrettyNormal: <dc=example,o=test>, <dc=example,o=test> Feb 5 10:42:37 server2 slapd[5093]: >>> dnPrettyNormal: <dc=example,o=test> Feb 5 10:42:37 server2 slapd[5093]: <<< dnPrettyNormal: <dc=example,o=test>, <dc=example,o=test> Feb 5 10:42:37 server2 slapd[5093]: glue: no superior found for sub dc=example,o=test! Feb 5 10:42:37 server2 slapd[5093]: olcSubordinate: value #0: <olcSubordinate> handler exited with 32! Feb 5 10:42:37 server2 slapd[5093]: send_ldap_result: conn=-1 op=0 p=0 Feb 5 10:42:37 server2 slapd[5093]: send_ldap_result: err=80 matched="" text="<olcSubordinate> handler exited with 32" Feb 5 10:42:37 server2 slapd[5093]: null_callback : error code 0x50 Feb 5 10:42:37 server2 slapd[5093]: syncrepl_entry: rid=001 be_add failed (80) Feb 5 10:42:37 server2 slapd[5093]: connection_get(12) Feb 5 10:42:37 server2 slapd[5093]: connection_get(12): got connid=0 Feb 5 10:42:37 server2 slapd[5093]: daemon: removing 12 Feb 5 10:42:37 server2 slapd[5093]: do_syncrepl: rid=001 retrying (4 retries left) Feb 5 10:42:37 server2 slapd[5093]: daemon: epoll: listen=7 active_threads=0 tvp=zero Feb 5 10:42:37 arv2b slapd[5093]: daemon: epoll: listen=8 active_threads=0 tvp=zero Feb 5 10:42:37 arv2b slapd[5093]: daemon: epoll: listen=9 active_threads=0 tvp=zero Feb 5 10:42:37 arv2b slapd[5093]: daemon: epoll: listen=10 active_threads=0 tvp=zero 8<--------
Is it a bug ?
I have an idea : reorder declarations into the cn=config to have something like that :
olcDatabase={2}bdb,cn=config olcSuffix o=test olcOverlay={0}glue,olcDatabase={2}bdb,cn=config olcOverlay {0}glue olcDatabase={3}ldap,cn=config olcSuffix dc=example,o=test olcSubordinate TRUE
I have the first olcDatabase={2}bdb,cn=config replicated successfully. But an other problem appears : the DN of olcOverlay={0}glue,olcDatabase={4}bdb,cn=config is not correclty renamed, because of a inexcepted "charset" ? I can reproduce this problem for all types of database. OpenLDAP complains itself and replication does not work. Hum... but I realized that even this "tips" works, OpenLDAP could not be restarted correctly anymore because of the configuration's test...
Any hints, or advice would be most appreciated.
Regards, Thomas.