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

cn=config and overlay order

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.