cubicweb #3557057 ldapfeed: exception thrown in _process_email() breaks database integrity [open]

While ticket #3539196 fixes the cause of the UnicodeDecodeError exception, the exception shouldn't have left the database in an inconsistent state in the first place.

To reproduce:

  • In file sobjects/, in function _process_email(), replace the piece of code we have fixed: emailextid = userdict['dn'] + '@@' + emailaddr with a piece of code throwing an exception.
  • Add an LDAP source to a CubicWeb instance, make sure an email is associated to the accounts.
  • Run cubicweb-ctl source <instance> <LDAP_source> to start get the exception to be thrown.
  • Verify the integrity of the database is broken by running: cubicweb-ctl db-check -c entities,metadata <instance>
done in<not specified>
closed by<not specified>