in recent posts about corrupted ruvs, there also was the error about failing cleanup, like:

ipa-replica-manage del vm-162.idm.lab.eng.brq.redhat.com

Failed to cleanup vm-162.idm.lab.eng.brq.redhat.com entries: Not allowed on non-leaf entry

in the access log we see

[06/May/2015:14:19:11 +0200]conn=30 op=17 SRCH base="cn=vm-162.idm.lab.eng.brq.redhat.com,cn=masters,cn=ipa,cn=etc,dc=idm,dc=lab,dc=eng,dc=brq,dc=redhat,dc=com" scope=2 filter="(objectClass=*)" attrs=ALL

[06/May/2015:14:19:11 +0200] conn=30 op=17 RESULT err=0 tag=101 nentries=6 etime=0 notes=U [06/May/2015:14:19:11 +0200] conn=30 op=18 DEL dn="cn=vm-162.idm.lab.eng.brq.redhat.com,cn=masters,cn=ipa,cn=etc,dc=idm,dc=lab,dc=eng,dc=brq,dc=redhat,dc=com" [06/May/2015:14:19:11 +0200] conn=30 op=18 RESULT err=66 tag=107 nentries=0 etime=0

which means that there was an attempt to remove the host before the services

in replica_cleanup we have:

# delete master entry with all active services

dn = DN(('cn', replica), ('cn', 'masters'), ('cn', 'ipa'),('cn', 'etc'), self.suffix)
    entries = self.conn.get_entries(dn, ldap.SCOPE_SUBTREE)
    if entries:
        entries.sort(key=len, reverse=True)
        for entry in entries:

this intends to delete children befor the parent, as teh dns of children are longer, but get_entries does return a list of entries, not DNs, and so the sorting does not work as can be seen in this example:

>>> list = [('123456','A'),('123','B'),('12345678','C')]

>>> list.sort(key=len,reverse=True)

>>> for l in list:

...     print l


('123456', 'A')

('123', 'B')

('12345678', 'C')

Manage your subscription for the Freeipa-devel mailing list:
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code

Reply via email to