Moved from openldap-technical. Hallvard B Furuseth writes: > [back-ldif] can leave behind a temporary file if you pull the plug on > slapd at just the wrong moment, when an entry is being written. That > won't affect the entry, but the parent entry cannot be deleted when > there are temporary files in its directory.
Could fix this as follows. I guess it's worth the price of slowing down LDAP Delete: If a Delete operation would fail with notAllowedOnNonLeaf (rmdir gave ENOTEMPTY), read the first directory entries. If we find an .ldif or a directory, return notAllowedOnNonLeaf. Remove any temporary files encountered until then, and try again if we removed them all. back-ldif serializes write operations, so there won't be a conflict unless the admin runs slapadd and slapd at the same time. There could be files someone else has stored there which should not be deleted, e.g. a README, so tempfiles should have recognizable names like "<rdn>.tmp<6 random chars>" instead of just "<rdn>.<6 random chars>". -- Hallvard