Note: This ITS need not hold up 2.4.7; the tests fail in 2.4.6 too.
I wrote:
"./run -b ldif test004-modify" gets noSuchObject when it attempts to delete "cn=James A Jones 2,ou=Information Technology Division, ou=People,dc=example,dc=com".
The same happens in test008-concurrency. The ldapsearch output contains 4 entries that should have been deleted: dn: cn=James A Jones 2,ou=Alumni Association,ou=People,dc=example,dc=com dn: cn=James A Jones 3,ou=Alumni Association,ou=People,dc=example,dc=com dn: cn=James A Jones 4,ou=People,dc=example,dc=com dn: cn=James A Jones 5,dc=example,dc=com The Delete operations for those got noSuchObject, but further Binds as them succeed. (At least in spot checks of Joneses #3 and #4.)
slapd-addel.c contains #if 0'ed out code /* wait a second for the add to really complete */ /* This masks some race conditions though. */ sleep( 1 ); The program's Add and Delete calls are synchronous, so I'm not sure what that is about. In any case, it made no difference to put a random 0-15 second sleep there (so the slapd-addel processes would delete at different times).
While I'm checking this - other tests that fail with back-ldif: test027-emptydn [cannot slapadd to a database with suffix ""] Unsupported operations, I guess: test016-subref test017-syncreplication-refresh test025-limits [didn't bump into server-side unchecked limit] test037-manage OK failure - compare fails because of entry order from ldapsearch: test012-glue-populate test026-dn
test004, test008 and test017 succeed in 2.3.38. Maybe the fix to ITS#4627 (back-ldif issues) was bad?