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 following:
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 (80)
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.