Howard Chu wrote:
maxime.besson@worteks.com wrote:
Full_Name: Maxime Besson Version: 2.4.48 OS: Linux URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (77.193.139.162)
I am attempting to implement the following disaster recovery process:
- rm all previous data
- run a configuration script (puppet) to recreate a bare-bones LDAP server and
DIT
- restore a backed-up slapcat dump on top of the freshly installed OpenLDAP
server, ignoring duplicates already inserted by Puppet
But it seems that when skipping over the existing objects, something goes wrong and causes attributes to get mixed up. But only when certain attributes are present in the existing objects. Here is how to reproduce:
Thanks for the report and simple test case. This is now fixed in git master.
I'd also note that using -c has always been pretty risky. You would be better off using -j in situations like this, as show below:
puppet_init.ldif
dn: dc=example,dc=com objectClass: domain dc: example ===
backup.ldif
dn: dc=example,dc=com objectClass: domain dc: example contextCSN: 20190909094705.796552Z#000000#001#000000
dn: uid=ttully,dc=example,dc=com objectClass: inetOrgPerson uid: ttully userPassword:: c2Nob29uZXI= facsimileTelephoneNumber: +1 408 555 0111 givenName: Torrey cn: Torrey Tully telephoneNumber: +1 408 555 2274 sn: Tully roomNumber: 3924 mail: ttully@example.com l: Sunnyvale ou: Human Resources ou: People ===
When running the following commands:
=== rm -f /tmp/*.mdb slapadd -f slapd.conf puppet_init.ldif slapadd -f slapd.conf -c backup.ldif ===
slapadd -f slapd.conf -l puppet_init.ldif slapadd -f slapd.conf -l backup.ldif -j 5