On Thu, Feb 23, 2012 at 05:46:06PM +0100, Julien Soula wrote:
hello,
I have a problem with a cancelation of replication of cn=config. I configured replication of cn=config in slapd.d (without slapd.conf) and I wanted to stop it.
First one, I didn't see how to cancel replication in cn=config otherwise that deleting olcSyncRepl attribute directly in slapd.d files since database was in shadow context. Is there a proper way ?
So I stopped slapd and deleted olcSyncRepl attribute and restarted it. But when I commited change, it failed with error : "shadow context without update referral" (there is no more olcSyncRepl in config) !
I tried to enable olcMirrorMode (directly in files again) but slapd crashed at start saying that the database was not in shadow context !
I cannot explain this behaviour. How the server determine that a database is in shadow context or not ? Is there a cache somewhere ?
I answer to myself !
The simple fact to have 'olcMirrorMode' attribute in database entry causes this behaviour. If the value is true, it causes error since DB is not yet in shadow context. If the value is false, the DB enters in SLAP_DBFLAG_SINGLE_SHADOW
This feature seems strange to me but nevertheless deleting the attribute solves the problem.
Another strange feature is that deleting 'olcSyncRepl' attribute dynamically without deleting 'olcMirrorMode' remove shadow context. But at the next restart, we fall in the case above.
Note: openldap-2.4.30
sincerly,