I finally got around to updating some custom overlays to be configurable
with cn=config and noticed that overlays were processed in the reverse
order of what I expected after using slapd.d rather than slapd.conf.
If I have the following in slapd.conf:
...
overlay overlay1
overlay overlay2
overlay overlay3
...
and convert it to slapd.d, I will see the following in cn=config:
...
# {0}overlay3, {1}bdb, config
dn: olcOverlay={0}overlay3,olcDatabase={1}bdb,cn=config
objectClass: olcOverlayConfig
olcOverlay: {0}overlay3
# {1}overlay2, {1}bdb, config
dn: olcOverlay={1}overlay2,olcDatabase={1}bdb,cn=config
objectClass: olcOverlayConfig
olcOverlay: {1}overlay2
# {2}overlay1, {1}bdb, config
dn: olcOverlay={2}overlay1,olcDatabase={1}bdb,cn=config
objectClass: olcOverlayConfig
olcOverlay: {2}overlay1
...
When slapd is started with slapd.conf, the overlay stack is correct
(overlay3 -> overlay2 -> overlay1 for processing order), although
cn=config reports the above. When slapd.d is used, the overlay stack is
the opposite (overlay1 -> overlay2 -> overlay3). This occurs in both
2.3.39 and 2.4.6.
I see this as a problem in situations where order of overlays is
important (syncprov comes to mind).
Is this a known behavior? It's obviously not that difficult to issue an
ldapmodify command to set the proper order, but it was unexpected that I
had to do so.
Thanks,
dave