It is possible for a replica server to end up with zero-length admin-backend.ldif and admin-backend.ldif.old files. When the server is restarted, it fails and shuts itself down immediately:
This has been observed to occur with several customers, and generally they all report that the disks have filled up.
However, inspecting the LDIFBackend code I cannot see how - if the backend has entries - we could end up failing to write a complete LDIF file and not detect the problem. However we do ignore any exceptions thrown when we close() the file, which could be hiding a problem.
I've not been able to reproduce this problem on OS X. It feels like it might be filesystem or OS-specific.
But it seems to me that we could bulletproof our code somewhat.
Firstly, we could check the length of the .ldif.new file is non-zero, and fail if the backend actually has entries. This seems like a reasonable sanity check.
Secondly, we could check the length of .ldif file when reading, and try the .ldif.old file automatically if it is empty.