Bug 44239

Summary: Traceback when adding a network object without DNS foward zone to a computer object
Product: UCS Reporter: Eduard Mai <mai>
Component: UMC - ComputersAssignee: UMC maintainers <umc-maintainers>
Status: RESOLVED DUPLICATE QA Contact: UDM maintainers <udm-maintainers>
Severity: normal    
Priority: P5 CC: best
Version: UCS 4.2   
Target Milestone: ---   
Hardware: Other   
OS: Linux   
See Also: https://forge.univention.org/bugzilla/show_bug.cgi?id=44389
https://forge.univention.org/bugzilla/show_bug.cgi?id=24828
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?: Yes
School Customer affected?: ISV affected?:
Waiting Support: Flags outvoted (downgraded) after PO Review:
Ticket number: 2017050421000592, 2017082221000731 Bug group (optional): External feedback
Max CVSS v3 score:
Attachments: traceback

Description Eduard Mai univentionstaff 2017-04-03 16:15:03 CEST
Created attachment 8748 [details]
traceback

To reproduce create a network object with only a network address and a subnet mask defined. Then create a computer object and assign the network object to the computer object. A traceback similar to the attached should be displayed.

I was able to reproduce this for different types of computer objects. The traceback indicates that the related UDM handlers always assume an assigned DNS object which the frontend does not enforce.
Comment 1 Eduard Mai univentionstaff 2017-04-03 16:28:26 CEST
Reposting traceback to make it searchable:

Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/notifier/threads.py", line 82, in _run
    tmp = self._function()
  File "/usr/lib/pymodules/python2.7/notifier/__init__.py", line 104, in __call__
    return self._function( *tmp, **self._kwargs )
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/udm/__init__.py", line 406, in _thread
    module.modify(properties)
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/udm/udm_ldap.py", line 86, in _decorated
    return method(*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/univention/management/console/ldap.py", line 143, in _decorated
    result = func(*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/udm/udm_ldap.py", line 445, in modify
    obj.modify()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 318, in modify
    return self._modify(modify_childs, ignore_license=ignore_license)
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 793, in _modify
    self._ldap_pre_modify()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/computers/linux.py", line 508, in _ldap_pre_modify
    univention.admin.handlers.simpleComputer._ldap_pre_modify(self)
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 2249, in _ldap_pre_modify
    self.check_common_name_length()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 1691, in check_common_name_length
    zoneName = univention.admin.uldap.explodeDn(zone[0], 1)[0]
IndexError: list index out of range
 Die Ausführung des Kommandos udm/put computers/computer ist fehlgeschlagen:
Comment 2 Florian Best univentionstaff 2017-04-18 13:22:45 CEST
Die Ausführung des Kommandos udm/put computers/computer ist fehlgeschlagen:
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/notifier/threads.py", line 82, in _run
    tmp = self._function()
  File "/usr/lib/pymodules/python2.7/notifier/__init__.py", line 104, in __call__
    return self._function( *tmp, **self._kwargs )
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/udm/__init__.py", line 406, in _thread
    module.modify(properties)
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/udm/udm_ldap.py", line 86, in _decorated
    return method(*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/univention/management/console/ldap.py", line 143, in _decorated
    result = func(*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/univention/management/console/modules/udm/udm_ldap.py", line 445, in modify
    obj.modify()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 318, in modify
    return self._modify(modify_childs, ignore_license=ignore_license)
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 793, in _modify
    self._ldap_pre_modify()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/computers/linux.py", line 508, in _ldap_pre_modify
    univention.admin.handlers.simpleComputer._ldap_pre_modify(self)
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 2249, in _ldap_pre_modify
    self.check_common_name_length()
  File "/usr/lib/pymodules/python2.7/univention/admin/handlers/__init__.py", line 1691, in check_common_name_length
    zoneName = univention.admin.uldap.explodeDn(zone[0], 1)[0]
IndexError: list index out of range
Comment 4 Florian Best univentionstaff 2017-08-23 10:32:54 CEST
Version: 4.2-1 errata139 (Lesum)
Comment 5 Florian Best univentionstaff 2017-08-23 11:53:35 CEST
The root cause is very similar to Bug #44389. This issue here can only be caused in UMC because the syntax check is different in UMC and CLI.
Comment 6 Florian Best univentionstaff 2017-08-23 11:55:12 CEST

*** This bug has been marked as a duplicate of bug 44389 ***