Bug 49086 - udm/remove (navigation): insufficientInformation: No superordinate object given
udm/remove (navigation): insufficientInformation: No superordinate object given
Status: NEW
Product: UCS
Classification: Unclassified
Component: UMC - DNS
UCS 4.4
Other Linux
: P5 normal (vote)
: ---
Assigned To: UMC maintainers
UMC maintainers
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2019-03-25 13:52 CET by Johannes Keiser
Modified: 2019-04-26 11:03 CEST (History)
2 users (show)

See Also:
What kind of report is it?: Bug Report
What type of bug is this?: 3: Simply Wrong: The implementation doesn't match the docu
Who will be affected by this bug?: 1: Will affect a very few installed domains
How will those affected feel about the bug?: 2: A Pain – users won’t like this once they notice it
User Pain: 0.034
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number: 2019032021000918, 2019020921000763
Bug group (optional): Error handling, External feedback
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Johannes Keiser univentionstaff 2019-03-25 13:52:10 CET
Version: 4.4-0 errata11 (Blumenthal)

Remark: Löschen des Eintrags fehlgeschlagen

Interner Server-Fehler in "udm/remove (navigation)".
Request: udm/remove (navigation)

  File "%PY2.7%/notifier/threads.py", line 78, in _run
    tmp = self._function()
  File "%PY2.7%/notifier/__init__.py", line 104, in __call__
    return self._function( *tmp, **self._kwargs )
  File "%PY2.7%/univention/management/console/modules/udm/__init__.py", line 458, in _thread
    module.remove(ldap_dn, options.get('cleanup', False), options.get('recursive', False))
  File "%PY2.7%/univention/management/console/modules/udm/udm_ldap.py", line 87, in _decorated
    return method(*args, **kwargs)
  File "%PY2.7%/univention/management/console/ldap.py", line 143, in _decorated
    result = func(*args, **kwargs)
  File "%PY2.7%/univention/management/console/modules/udm/udm_ldap.py", line 690, in remove
    obj = self.module.object(None, ldap_connection, ldap_position, dn=ldap_dn, superordinate=superordinate)
  File "%PY2.7%/univention/admin/handlers/dns/ptr_record.py", line 202, in __init__
    univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes=attributes)
  File "%PY2.7%/univention/admin/handlers/__init__.py", line 239, in __init__
    self._validate_superordinate()
  File "%PY2.7%/univention/admin/handlers/__init__.py", line 992, in _validate_superordinate
    raise univention.admin.uexceptions.insufficientInformation(_('No superordinate object given'))
insufficientInformation: Kein übergeordnetes Objekt angegeben.

Role: domaincontroller_master
Comment 1 Johannes Keiser univentionstaff 2019-03-25 15:21:49 CET
Version: 4.3-3 errata419 (Neustadt)

Interner Server-Fehler in "udm/remove (navigation)".
Request: udm/remove (navigation)

  File "%PY2.7%/notifier/threads.py", line 78, in _run
    tmp = self._function()
  File "%PY2.7%/notifier/__init__.py", line 104, in __call__
    return self._function( *tmp, **self._kwargs )
  File "%PY2.7%/univention/management/console/modules/udm/__init__.py", line 458, in _thread
    module.remove(ldap_dn, options.get('cleanup', False), options.get('recursive', False))
  File "%PY2.7%/univention/management/console/modules/udm/udm_ldap.py", line 84, in _decorated
    return method(*args, **kwargs)
  File "%PY2.7%/univention/management/console/ldap.py", line 143, in _decorated
    result = func(*args, **kwargs)
  File "%PY2.7%/univention/management/console/modules/udm/udm_ldap.py", line 423, in remove
    obj = self.module.object(None, ldap_connection, ldap_position, dn=ldap_dn, superordinate=superordinate)
  File "%PY2.7%/univention/admin/handlers/dns/ptr_record.py", line 200, in __init__
    univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes=attributes)
  File "%PY2.7%/univention/admin/handlers/__init__.py", line 236, in __init__
    self._validate_superordinate()
  File "%PY2.7%/univention/admin/handlers/__init__.py", line 937, in _validate_superordinate
    raise univention.admin.uexceptions.insufficientInformation(_('No superordinate object given'))
insufficientInformation: Kein übergeordnetes Objekt angegeben.
Comment 2 Jürn Brodersen univentionstaff 2019-04-25 12:04:45 CEST
This can be reproduced with test 66__udm-computers/02_all_roles_creation_with_all_attributes and the s4 connector.

Just run the test and check /var/log/univention/connector-s4.log afterwards.
Comment 3 Florian Best univentionstaff 2019-04-25 13:40:07 CEST
(In reply to Jürn Brodersen from comment #2)
> This can be reproduced with test
> 66__udm-computers/02_all_roles_creation_with_all_attributes and the s4
> connector.
> Just run the test and check /var/log/univention/connector-s4.log afterwards.
Well, you cannot reproduce the UMC issue with that. But there is a similar traceback in the s4-connector. Can you paste this?
Might there be a regression caused by Bug #45068?
Comment 4 Jürn Brodersen univentionstaff 2019-04-25 17:18:32 CEST
univention,DC=intranet
25.04.2019 17:16:51,353 LDAP        (PROCESS): sync to ucs:   [           dns] [       add] relativeDomainName=mrwqk4gvvf,zoneName=q4up9tv4il.mflpa3f25q,cn=dns,dc=univention,dc=intranet
25.04.2019 17:16:51,357 LDAP        (ERROR  ): Unknown Exception during sync_to_ucs
25.04.2019 17:16:51,357 LDAP        (ERROR  ): Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/univention/s4connector/__init__.py", line 1539, in sync_to_ucs
    result = self.property[property_type].ucs_sync_function(self, property_type, object)
  File "/usr/lib/pymodules/python2.7/univention/s4connector/s4/dns.py", line 1709, in con2ucs
    ucs_host_record_create(s4connector, object)
  File "/usr/lib/pymodules/python2.7/univention/s4connector/s4/dns.py", line 1001, in ucs_host_record_create
    newRecord = univention.admin.handlers.dns.host_record.object(None, s4connector.lo, position, dn=None, attributes=[], update_zone=False)
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/dns/host_record.py", line 147, in __init__
    univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes=attributes)
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 239, in __init__
    self._validate_superordinate()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 993, in _validate_superordinate
    raise univention.admin.uexceptions.insufficientInformation(_('No superordinate object given'))
insufficientInformation: No superordinate object given
Comment 5 Florian Best univentionstaff 2019-04-25 17:39:54 CEST
"zoneName=q4up9tv4il.mflpa3f25q,cn=dns,dc=univention,dc=intranet" doesn't exists anymore at that time.
This is a bug against the S4-Connector, please clone it.
I think I saw this often in the past in the ucs-test logfiles.
The error handling is missing, it should instead print an error message/warning (e.g. catch noObject and insufficientInformation?).
Comment 6 Florian Best univentionstaff 2019-04-25 17:42:31 CEST
I have an idea about the potential cause of the UMC issue:
In UMC we are executing the function again if ldap.SERVER_DOWN occurrs. So if you remove a tree and between the removal of the parent and the child the ldap server gets restarted causing the traceback on the second execution of the function.