Hi Folks,


I have 4 servers setup via N-Way multi master using 2.4.44. Updates go to a single provider. We have close to 20 consumers connected to each of the providers via delta syncrepl. Fairly busy system with about 10000 additions, 64000 modifications and 5000 delete on a busy day. Current database is about 15 million entries. We see that some changes are not sent down to the consumers. We miss about 100 entries a day.  These entries appear in all 4 providers, but are randomly missing in the consumers. I am still investigating, but any insight/help will be greatly appreciated.


The providers are on RHEL 6, the consumers are on solaris 10.


configure options...
    --without-cyrus-sasl \
        --disable-bdb \
        --disable-hdb \
        --enable-ldap \
        --enable-mdb \
        --enable-constraint 


Regards,

Ping


=========================

one of the provider config files

========================

#
#  FileName: slapd.conf
#
#  Author:   $Author: d639599 $
#  Date:     $Date: 2014-08-22 14:00:37 +1000 (Fri, 22 Aug 2014) $
#  Revision: $Revision: 18625 $
#  CVS Tag:  $Name$
#  CVS ID:   $Id: slapd_master.conf.in 18625 2014-08-22 04:00:37Z d639599 $
#
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /data/openldap24/etc/openldap/schema/core.schema
include /data/openldap24/etc/openldap/schema/cosine.schema
include /data/openldap24/etc/openldap/schema/nis.schema
include /data/openldap24/etc/openldap/schema/radius.schema

# Define global ACLs to disable default read access.

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org

pidfile /data/openldap24/var/run/slapd.pid
argsfile /data/openldap24/var/run/slapd.args
#replica-pidfile /data/openldap/var/run/slurpd.pid

loglevel 32768


threads 32
tool-threads 8

allow bind_v2



# The number of results to return in a search
sizelimit unlimited

serverID 02




access to dn=uid=newevdouser@xman.com,ou=users,ou=evdo,ou=data,o=company,c=org
by dn=cn=infranet,ou=applicationusers,o=company,c=org read
by dn=cn=activeorder,ou=applicationusers,o=company,c=org read
by dn=cn=asap,ou=applicationusers,o=company,c=org read
..........
..........



#######################################################################
# monitor database
#######################################################################
database        monitor
rootdn "cn=monitoring,cn=Monitor"
rootpw XXXXXXXXXXXXXXXXXX

access to dn.subtree="cn=Monitor"
        by dn.exact="cn=Manager,o=company,c=org" read
        by * none



#######################################################################
# primary database 
#######################################################################
database mdb
suffix "o=company,c=org"
rootdn "cn=Manager,o=company,c=org"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw XXXXXXXXXXXXXXXXXX

#size of sparse file 64Gb
maxsize 68719476736

#only required to receive data from slurpd
#updatedn cn=directorymaster,ou=applicationusers,ou=radiusdata,o=company,c=org

# The database directory MUST exist prior to running slapd AND 
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory /data/openldap24/var/openldap-data

#Allow dirmaster unlimited time for searches
limits dn.exact="cn=directorymaster,ou=applicationusers,ou=radiusdata,o=company,c=org" time=unlimited

# Indices to maintain
index objectClass eq
index uid eq
index cn eq
index macAddress eq
index pinpoid eq
index bpiPoid eq
index target eq
index interceptType eq
index interceptValue eq
index imei eq
index ipHostNumber eq
index homeLocation eq
index sid eq
index   remoteId        eq
index   parentDn        eq
# required for sessionlaog
index entryCSN eq
index entryUUID eq

checkpoint 128 1
dbnosync



# syncrepl directives for each of the other masters for primary db replication
#######################################################################
## Syncrepl entry for 01
syncrepl rid=01
provider=ldap://host1
type=refreshAndPersist
retry="10 +" 
searchbase="o=company,c=org"
bindmethod=simple
type=refreshAndPersist
binddn="cn=dirmaster,ou=appusers,a,o=company,c=org"
credentials=YYYYY
retry="60 10 300 +"
schemachecking=on

# Syncrepl entry for 02
syncrepl rid=02
provider=ldap://host3
type=refreshAndPersist
retry="10 +" 
searchbase="o=company,c=org"
bindmethod=simple
type=refreshAndPersist
binddn="cn=dirmaster,ou=appusers,a,o=company,c=org"
credentials=YYYYY
retry="60 10 300 +"
schemachecking=on

# Syncrepl entry for 03
syncrepl rid=03
provider=ldap://host4
type=refreshAndPersist
retry="10 +" 
searchbase="o=company,c=org"
bindmethod=simple
type=refreshAndPersist
binddn="cn=dirmaster,ou=appusers,a,o=company,c=org"
credentials=YYYYY
retry="60 10 300 +"
schemachecking=on




#need mirror mode to accept writes
mirrormode on


overlay accesslog
logdb cn=accesslog
logops writes
logsuccess TRUE
logbase writes o=company,c=org
# scan the accesslog DB every day, and purge entries older than 14 days
logpurge 14+00:00 01+00:00


#sycrepl provider config
# define the provider to use the syncprov overlay
# (last directives in database section)
overlay syncprov
syncprov-checkpoint 10000 10
# contextCSN saved to database every 10000 updates or ten minutes
syncprov-sessionlog 10000
syncprov-nopresent TRUE



#######################################################################
# accesslog database 
#######################################################################
database mdb
suffix "cn=accesslog"
rootdn "cn=Manager,o=company,c=org"

#size of sparse file 16Gb
maxsize 17179869184 

directory /data/openldap24/var/openldap-data-accesslog

#Allow dirmaster unlimited time for searches
limits dn.exact="cn=dirmaster,ou=appusers,a,o=company,c=orgg" time=unlimited


index entryCSN eq
index objectClass eq
index reqEnd eq
index reqResult eq
index reqStart eq


#sycrepl provider config
# define the provider to use the syncprov overlay
# (last directives in database section)
overlay syncprov
syncprov-nopresent TRUE
syncprov-reloadhint TRUE


======================================
consumer config
======================================
#
#  FileName: slapd.conf
#
#  Author:   $Author: d639599 $
#  Date:     $Date: 2014-08-22 14:00:37 +1000 (Fri, 22 Aug 2014) $
#  Revision: $Revision: 18625 $
#  CVS Tag:  $Name$
#  CVS ID:   $Id: slapd_master.conf.in 18625 2014-08-22 04:00:37Z d639599 $
#
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /data/openldap24/etc/openldap/schema/core.schema
include /data/openldap24/etc/openldap/schema/cosine.schema
include /data/openldap24/etc/openldap/schema/nis.schema
include /data/openldap24/etc/openldap/schema/radius.schema


# Define global ACLs to disable default read access.

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org

pidfile /data/openldap24/var/run/slapd.pid
argsfile /data/openldap24/var/run/slapd.args
#replica-pidfile /data/openldap/var/run/slurpd.pid

loglevel 32768
#
#threads 64
#
allow bind_v2
#


# The number of results to return in a search
sizelimit unlimited


tool-threads 2
threads 8
# Load dynamic backend modules:
# modulepath /data/openldap/libexec/openldap
# moduleload back_bdb.la
# moduleload back_ldap.la
# moduleload back_ldbm.la
# moduleload back_passwd.la
# moduleload back_shell.la

# Sample security restrictions
# Require integrity protection (prevent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
# Root DSE: allow anyone to read it
# Subschema (sub)entry DSE: allow anyone to read it
# Other DSEs:
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
# Directives needed to implement policy:
# access to dn.base="" by * read
# access to dn.base="cn=Subschema" by * read
# access to *
# by self write
# by users read
# by anonymous auth
#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn.  (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

access to *
        by cn=dirmaster,ou=appusers,a,o=company,c=org write
        by dn=cn=radiusserver,ou=applicationusers,o=company,c=org read
..........
..........


#######################################################################
# config database
#######################################################################

database config

# NOTE: the suffix is hardcoded as cn=config and 
# MUST not have a suffix directive
# normal rules apply - rootdn can be anything you want
# but MUST be under cn=config

rootdn "cn=admin,cn=config"

# use any of the supported password formats e.g. {SSHA} etc
# or plaintext as shown

rootpw XXXXXXXXXXXXXXXXXX




#######################################################################
# monitor database
#######################################################################

database        monitor
rootdn "cn=monitoring,cn=Monitor"
rootpw {SHA}wauZJOzaG+r4u6oeuCOLg+DtjGM=

access to dn.subtree="cn=Monitor"
        by dn.exact="cn=Manager,o=company,c=org" read
        by * none

#######################################################################
# mdb database definitions
#######################################################################

database mdb
suffix "o=company,c=org"
rootdn "cn=Manager,o=company,c=org"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw XXXXXXXXXXXXXXXX


maxsize         68719476736

# To speedup further - possibly at the expense of data integrity
# Only use for slappadd without slapd running
#envflags nometasync
#envflags writemap


# The database directory MUST exist prior to running slapd AND 
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory /data/openldap24/var/openldap-data



# Indices to maintain
index objectClass eq
index uid eq
index cn eq
index macAddress eq
index pinpoid eq
index bpiPoid eq
index target eq
index interceptType eq
index interceptValue eq
index imei eq
index ipHostNumber eq
index homeLocation eq
index sid eq
index   remoteId        eq
index   parentDn        eq
index entryUUID eq
index entryCSN eq

checkpoint 128 1
dbnosync



# syncrepl directives for primary db replication
#######################################################################
## Syncrepl entry for 01
syncrepl rid=01
provider=ldap://provider1
bindmethod=simple
binddn="cn=dirmaster,ou=appusers,a,o=company,c=org"
credentials=XXXXXXX
searchbase="o=company,c=org"
logbase="cn=accesslog"
type=refreshAndPersist
scope=sub
retry="10 +"
schemachecking=off
logfilter="(&(objectClass=auditWriteObject)(reqResult=0)(|(reqDN:dnSubtreeMatch:=ou=radiusdata,o=company,c=org)(reqDN:dnSubtreeMatch:=ou=applicationusers,o=company,c=org)))"
syncdata=accesslog
filter="(|(entrydn:dnSubtreeMatch:=ou=radiusdata,o=company,c=org)(entrydn:dnSubtreeMatch:=ou=applicationusers,o=company,c=org))"