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

(ITS#7279) Apparently mdb "approx" index generation failure for mdb_add for syncrepl consumer

Full_Name: Brandon Hume
Version: 2.4.31
OS: RHEL EL6.1, kernel 2.6.32-131.12.1.el6.x86_64
URL: http://den.bofh.ca/~hume/mdb_approx_indexfail.tar
Submission from: (NULL) (2001:410:a010:2:223:aeff:fe74:400e)

An empty syncrepl consumer using mdb backend will suffer index generator
failures when populating its database from the provider and using "approx" index
options.  The failure manifests in syslog (with olcLogLevel=Stats) as the

May 24 11:50:41 node2 slapd[25282]: null_callback : error code 0x50
May 24 11:50:41 node2 slapd[25282]: syncrepl_entry: rid=001 be_add $DN failed

These problems don't seem to occur when populating the provider using slapadd. 
The problem only seems to manifest when the new entry arrives via syncrepl. 
Playing with gdb, it seems like indexer() ends up being called with { bv_len =
0, bv_val = "" } when indexing "givenName".

Could be because "givenName" on the troublesome entry is only one character?

A minimalist DIT and config are provided in the tarfile in the link.  The two
nodes are running in mirrormode, and I'm not sure if that makes a difference.

To reproduce:

   - On provider: slapadd -b cn=config -l mdb_approx_indexfail_config.ldif
   - On provider: slapadd -b dc=dal,dc=ca -l mdb_approx_indexfail_dit.ldif
   - On consumer: slapadd -b cn=config -l mdb_approx_indexfail_config.ldif

   - Start provider, confirm no errors
   - Start consumer, null_callback errors should appear immediately.