While setting up and OpenLDAP server I found my distribution shipped with a
couple of schema files, but no equivalent LDIF files. I found ways to convert
the file using
slaptest and the files were valid on their own.
I was specifically trying to bootstrap an OpenLDAP server, with it's schema,
from scratch for a CI/CD system to test against. To accomplish this I was
making use of the
include directive in a configuration LDIF file and saw some
very odd behavior.
When I included the LDIF schema files that shipped with the software, I could include multiple of them back to back like so:
include: file:///etc/openldap/schema/core.ldif include: file:///etc/openldap/schema/cosine.ldif include: file:///etc/openldap/schema/inetorgperson.ldif
When I included my converted file, it would successfully apply it, then just stop… I assumed at first that there was a syntax error, but there was no error. Everything contained in the included LDIF was present in the DIT. It had simply stopped.
After many frustrating attempts, and hours Googling, the result came down to… there was an empty line at the end of the file. I couldn't find any documentation about this behavior and identified it through dumb luck. For anyone that comes across this I hope this solves your issue as well.