Bug 53748 - Handle ldap.OTHER "parent does not exists" of S4-LDAP similar to NO_SUCH_OBJECT
Handle ldap.OTHER "parent does not exists" of S4-LDAP similar to NO_SUCH_OBJECT
Status: NEW
Product: UCS
Classification: Unclassified
Component: S4 Connector
UCS 5.0
Other Linux
: P5 normal (vote)
: ---
Assigned To: Samba maintainers
Samba maintainers
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2021-09-06 12:38 CEST by Florian Best
Modified: 2021-09-06 12:38 CEST (History)
0 users

See Also:
What kind of report is it?: Development Internal
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Florian Best univentionstaff 2021-09-06 12:38:56 CEST
Every Jenkins run of UCS@school we see the following reject / Traceback in the S4-Connector:

https://jenkins.knut.univention.de:8181/job/UCSschool-5.0/job/Install%20Singleserver/Config=s4,TestGroup=base1,UCSRelease=public/ws/test/connector-s4.log

LDAP        (PROCESS): sync from ucs: [            ou] [       add] ou=x9pfjovu83,DC=autotest201,DC=local
LDAP        (PROCESS): sync to ucs:   [            ou] [    modify] 'ou=t8fy3hznaw,dc=autotest201,dc=local'
LDAP        (PROCESS): object_from_element: DN of removed object: 'ou=temporary_move_container_1630870373.7434678,DC=autotest201,DC=local'
LDAP        (PROCESS): sync to ucs:   [            ou] [    delete] 'ou=temporary_move_container_1630870373.7434678,dc=autotest201,dc=local'
LDAP        (WARNING): Object to delete doesn't exists, ignore ('ou=temporary_move_container_1630870373.7434678,dc=autotest201,dc=local')
LDAP        (PROCESS): sync to ucs:   [            ou] [    modify] 'ou=j2rch7dh8y,ou=t8fy3hznaw,dc=autotest201,dc=local'
LDAP        (PROCESS): object_from_element: DN of removed object: 'ou=temporary_move_container_1630870376.6795042,DC=autotest201,DC=local'
LDAP        (PROCESS): sync to ucs:   [            ou] [    delete] 'ou=temporary_move_container_1630870376.6795042,dc=autotest201,dc=local'
LDAP        (WARNING): Object to delete doesn't exists, ignore ('ou=temporary_move_container_1630870376.6795042,dc=autotest201,dc=local')
LDAP        (PROCESS): sync to ucs:   [            ou] [    modify] 'ou=x9pfjovu83,dc=autotest201,dc=local'
LDAP        (PROCESS): sync from ucs: [          user] [       add] cn=X8knlmqt5yh,ou=x9pfjovu83,DC=autotest201,DC=local
LDAP        (PROCESS): sync from ucs: [         group] [    modify] cn=domain users,cn=groups,DC=autotest201,DC=local
LDAP        (PROCESS): sync to ucs:   [          user] [    modify] 'uid=x8knlmqt5yh,ou=x9pfjovu83,dc=autotest201,dc=local'
LDAP        (WARNING): sync failed, saved as rejected
ยป   /var/lib/univention-connector/s4/1630870395.591025
LDAP        (WARNING): Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/univention/s4connector/__init__.py", line 822, in __sync_file_from_ucs
    if not self.sync_from_ucs(key, mapped_object, pre_mapped_ucs_dn, old_dn, old, new):
  File "/usr/lib/python3/dist-packages/univention/s4connector/s4/__init__.py", line 2027, in sync_from_ucs
    self.lo_s4.rename(old_dn, object['dn'])
  File "/usr/lib/python3/dist-packages/univention/uldap.py", line 846, in rename
    self.rename_ext_s(dn, newrdn, newsdn, serverctrls=serverctrls, response=response)
  File "/usr/lib/python3/dist-packages/univention/uldap.py", line 205, in _decorated
    return func(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/univention/uldap.py", line 865, in rename_ext_s
    rtype, rdata, rmsgid, resp_ctrls = self.lo.rename_s(dn, newrdn, newsuperior, serverctrls=serverctrls)
  File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 684, in rename_s
    resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all=1,timeout=self.timeout)
  File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 749, in result3
    resp_ctrl_classes=resp_ctrl_classes
  File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 756, in result4
    ldap_result = self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
  File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 329, in _ldap_call
    reraise(exc_type, exc_value, exc_traceback)
  File "/usr/lib/python3/dist-packages/ldap/compat.py", line 44, in reraise
    raise exc_value
  File "/usr/lib/python3/dist-packages/ldap/ldapobject.py", line 313, in _ldap_call
    result = func(*args,**kwargs)
ldap.OTHER: {'desc': 'Other (e.g., implementation specific) error', 'info': '00002095: objectclass: Cannot rename cn=x8knlmqt5yh,ou=x9pfjovu83,DC=autotest201,DC=local, parent does not exist!'}

LDAP        (PROCESS): sync from ucs: [         group] [    modify] cn=domain users,cn=groups,DC=autotest201,DC=local
LDAP        (PROCESS): sync from ucs: [            ou] [    delete] ou=x9pfjovu83,DC=autotest201,DC=local
LDAP        (WARNING): delete subobject: 'uid=x8knlmqt5yh,ou=x9pfjovu83,dc=autotest201,dc=local'
LDAP        (PROCESS): sync from ucs: [          user] [    delete] CN=X8knlmqt5yh,OU=x9pfjovu83,DC=autotest201,DC=local

We should handle ldap.OTHER "parent does not exists" of S4-LDAP similar to ldpa.NO_SUCH_OBJECT.