https://bugs.openldap.org/show_bug.cgi?id=10047
--- Comment #4 from Quanah Gibson-Mount quanah@openldap.org --- (In reply to Howard Chu from comment #2)
I've identified two potential problems and we need to check that both get fixed.
- slapindex should delete the index checkpoint table after it completes,
but doesn't
You can verify this by doing an `mdb_dump -s ixck` on the offending DB; on a normal DB that table should be empty or absent.
Status of ixck Tree depth: 1 Branch pages: 0 Leaf pages: 1 Overflow pages: 0 Entries: 2
- since the index checkpoint says there's still work to do, slapd will
restart the online indexer on next startup. It looks like it's giving it an invalid backend struct when init.c:mdb_db_open() calls mdb_start_index_task(). Probably it used a fake be struct from an overlay instead of the real be struct.
For (2) you can change the `mdb_start_index_task( be )` to `mdb_start_index_task( be->be_self )`
That should fix the crash, but slapd shouldn't even need to start the indexer at all. Please verify that the crash is fixed, and I'll patch the slapindex code in a further update.
Ok!