Issue 5276 - include handler broken
Summary: include handler broken
Status: VERIFIED FIXED
Alias: None
Product: OpenLDAP
Classification: Unclassified
Component: slapd (show other issues)
Version: unspecified
Hardware: All All
: --- normal
Target Milestone: ---
Assignee: OpenLDAP project
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-12-13 01:17 UTC by Quanah Gibson-Mount
Modified: 2014-08-01 21:06 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Quanah Gibson-Mount 2007-12-13 01:17:07 UTC
Full_Name: Quanah Gibson-Mount
Version: 2.3.39
OS: Linux 2.6
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (66.92.25.194)


In discussions with a fellow on IRC, it looks like the include handler has some
serious problems.  For example with this slapd.conf, we get:

#ucdata-path    "/opt/zimbra/openldap/ucdata"
include         "/opt/zimbra/openldap/etc/openldap/schema/core.schema"
include         "/opt/zimbra/openldap/etc/openldap/schema/cosine.schema"
include         "/opt/zimbra/openldap/etc/openldap/schema/inetorgperson.schema"
include         "/opt/zimbra/openldap/etc/openldap/schema/amavisd.schema"
include         "/opt/zimbra/openldap/etc/openldap/schema/zimbra.schema"
include         "/opt/zimbra/lib/conf/zimbra-ext.schema"

threads         8

pidfile         "/opt/zimbra/openldap/var/run/slapd.pid"
argsfile        "/opt/zimbra/openldap/var/run/slapd.args"

TLSCertificateFile /opt/zimbra/conf/slapd.crt
TLSCertificateKeyFile /opt/zimbra/conf/slapd.key
TLSVerifyClient never

loglevel 32768

# Load dynamic backend modules:
modulepath      /opt/zimbra/openldap/libexec/openldap
moduleload      back_bdb.la
moduleload      back_monitor.la
moduleload      syncprov.la
moduleload      accesslog.la

<acl lines snipped>

database        config
rootpw {SSHA}+wKEnqbcbxssdGDKx1LeNsoL90Ha2Lzx

database        monitor
rootdn          "cn=config"
access to dn.children="cn=monitor"
        by dn.children="cn=admins,cn=zimbra" read

include /opt/zimbra/conf/bdb-conf
include /opt/zimbra/conf/syncrepl-conf

bdb-conf is:

database        bdb
suffix          ""
rootdn          "cn=config"
cachesize 10000
idlcachesize 10000
checkpoint 64 5
directory       "/opt/zimbra/openldap-data"
index   objectClass                 eq
sizelimit unlimited
timelimit unlimited


And we can see it is clearly processed, so why is the syncrepl line getting
tagged to the monitor backend?

line 47 (index   entryCSN               eq)
index entryCSN 0x0004
line 48 (sizelimit unlimited)
line 49 (timelimit unlimited)
line 154 (include /opt/zimbra/conf/syncrepl-conf)
reading config file /opt/zimbra/conf/syncrepl-conf
line 13 (syncrepl ***)
/opt/zimbra/conf/syncrepl-conf: line 13: database monitor does not support
operations required for syncrepl
/opt/zimbra/conf/slapd.conf: line 154: <include> handler exited with 1!


Another example of this problem can be seen at:

http://pastebin.com/d16e9b905

Comment 1 Quanah Gibson-Mount 2007-12-13 23:37:19 UTC

--On December 13, 2007 1:17:08 AM +0000 quanah@zimbra.com wrote:

> Full_Name: Quanah Gibson-Mount
> Version: 2.3.39

Also broken in OpenLDAP 2.4.7.

This config works as expected:

include         "/usr/local/etc/openldap/schema/core.schema"
include         "/usr/local/etc/openldap/schema/cosine.schema"
include         "/usr/local/etc/openldap/schema/inetorgperson.schema"
threads         8
pidfile         "/var/run/slapd.pid"
argsfile        "/var/run/slapd.args"
loglevel 256
modulepath      /usr/local/lib/openldap
moduleload      back_bdb.la
moduleload      back_hdb.la
moduleload      back_monitor.la
moduleload      syncprov.la
moduleload      accesslog.la
access to *
        by * write
database        config
rootpw          secret
database        bdb
suffix          ""
rootdn          "cn=config"
cachesize 10000
idlcachesize 10000
checkpoint 64 5
directory       "/usr/local/openldap-data"
index   objectClass                 eq
index   uid                         pres,eq
index   mail                   pres,eq,sub
index   cn                     pres,eq,sub
index   displayName            pres,eq,sub
index   sn                     pres,eq,sub
index   gn                     pres,eq,sub
index   entryUUID              eq
index   entryCSN               eq
sizelimit unlimited
timelimit unlimited
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 500



Modifying it so that it is now:

include         "/usr/local/etc/openldap/schema/core.schema"
include         "/usr/local/etc/openldap/schema/cosine.schema"
include         "/usr/local/etc/openldap/schema/inetorgperson.schema"
threads         8
pidfile         "/var/run/slapd.pid"
argsfile        "/var/run/slapd.args"
loglevel 256
modulepath      /usr/local/lib/openldap
moduleload      back_bdb.la
moduleload      back_hdb.la
moduleload      back_monitor.la
moduleload      syncprov.la
moduleload      accesslog.la
access to *
        by * write
database        config
rootpw          secret
include /usr/local/etc/openldap/bdb-conf
include /usr/local/etc/openldap/overlays-conf


Where bdb-conf is:

database        bdb
suffix          ""
rootdn          "cn=config"
cachesize 10000
idlcachesize 10000
checkpoint 64 5
directory       "/usr/local/openldap-data"
index   objectClass                 eq
index   uid                         pres,eq
index   mail                   pres,eq,sub
index   cn                     pres,eq,sub
index   displayName            pres,eq,sub
index   sn                     pres,eq,sub
index   gn                     pres,eq,sub
index   entryUUID              eq
index   entryCSN               eq
sizelimit unlimited
timelimit unlimited

and overlays-conf is:

overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 500


The contextCSN is never created in the root database, whereas in the former 
example it is.

I did other experiments with a more complicated config, and managed to 
completely lock up slapd as well.

--Quanah



--

Quanah Gibson-Mount
Principal Software Engineer
Zimbra, Inc
--------------------
Zimbra ::  the leader in open source messaging and collaboration

Comment 2 Howard Chu 2007-12-14 03:21:43 UTC
changed notes
changed state Open to Test
moved from Incoming to Software Bugs
Comment 3 Quanah Gibson-Mount 2008-02-13 23:48:12 UTC
changed state Test to Release
Comment 4 Quanah Gibson-Mount 2008-02-20 02:31:51 UTC
changed notes
changed state Release to Closed
Comment 5 Howard Chu 2009-02-17 05:21:54 UTC
moved from Software Bugs to Archive.Software Bugs
Comment 6 OpenLDAP project 2014-08-01 21:06:50 UTC
fixed in HEAD
fixed in 2.4.8
fixed in 2.3.40