Univention Bugzilla – Bug 35099
LDAP inconsistency/UDM traceback if network object gets removed
Last modified: 2015-02-11 09:31:09 CET
We received the following traceback on a UCS@school 3.2R2 UCS 3.2-2 errata121 (Borgfeld). We had similar tracebacks before due to missing objects/containers in the OU structure. Traceback: Die Ausführung des Kommandos schoolwizards/computers/query ist fehlgeschlagen: Traceback (most recent call last): File "/usr/lib/pymodules/python2.6/univention/management/console/modules/__init__.py", line 204, in execute func( request ) File "/usr/lib/pymodules/python2.6/ucsschool/lib/schoolldap.py", line 204, in wrapper_func return func( *args, **kwargs ) File "/usr/lib/pymodules/python2.6/univention/management/console/modules/schoolwizards/__init__.py", line 118, in _decorated ret = func(self, request, *a, **kw) File "/usr/lib/pymodules/python2.6/univention/management/console/modules/schoolwizards/__init__.py", line 269, in get_computers return self._get_all(computer_class, school, request.options.get('filter'), ldap_user_read) File "/usr/lib/pymodules/python2.6/univention/management/console/modules/schoolwizards/__init__.py", line 246, in _get_all objs.extend(klass.get_all(lo, school.name, filter_str=filter_str, easy_filter=True)) File "/usr/lib/pymodules/python2.6/ucsschool/lib/models/base.py", line 652, in get_all obj = cls.from_udm_obj(udm_obj, school, lo) File "/usr/lib/pymodules/python2.6/ucsschool/lib/models/computer.py", line 258, in from_udm_obj obj = super(SchoolComputer, cls).from_udm_obj(udm_obj, school, lo) File "/usr/lib/pymodules/python2.6/ucsschool/lib/models/base.py", line 682, in from_udm_obj return klass.from_udm_obj(udm_obj, school, lo) File "/usr/lib/pymodules/python2.6/ucsschool/lib/models/computer.py", line 270, in from_udm_obj netmask = Network.get_netmask(network_dn, school, lo) File "/usr/lib/pymodules/python2.6/ucsschool/lib/models/network.py", line 108, in get_netmask network = cls.from_dn(dn, school, lo) File "/usr/lib/pymodules/python2.6/ucsschool/lib/models/base.py", line 735, in from_dn udm_obj = udm_modules.lookup(cls._meta.udm_module, None, lo, filter=cls._meta.udm_filter, base=dn, scope='base', superordinate=superordinate)[0] File "/usr/lib/pymodules/python2.6/univention/admin/modules.py", line 801, in lookup tmpres=module.lookup(co, lo, filter, base=base, superordinate=superordinate, scope=scope, unique=unique, required=required, timeout=timeout, sizelimit=sizelimit) File "/usr/lib/pymodules/python2.6/univention/admin/handlers/networks/network.py", line 332, in lookup for dn, attrs in lo.search(unicode(filter), base, scope, [], unique, required, timeout, sizelimit): File "/usr/lib/pymodules/python2.6/univention/admin/uldap.py", line 347, in search raise univention.admin.uexceptions.noObject, _err2str(msg) noObject: No such object
Happens when (auto) assigning a network object to a computer and then manually deleting this network. Seems that the DN is still present in the computer object and points to nowhere, hence the error message. Could be handled in the school lib, should be handled in UDM
(In reply to Dirk Wiesenthal from comment #1) > Happens when (auto) assigning a network object to a computer and then > manually deleting this network. > > Seems that the DN is still present in the computer object and points to > nowhere, hence the error message. ACK Removed network object in UDM and the host object still contains the following attribute: univentionNetworkLink: \ cn=gsmitte-10.200.98.0,cn=networks,ou=gsmitte,dc=example,dc=com > Could be handled in the school lib, should be handled in UDM → moved bug to UCS/UDM
Reported again
And again...
Reported at 2014082721000487
Created attachment 6490 [details] dirty patch attached is a starting point for a patch. Please replace the computer.open()…computer.modify() thing with another fast LDAP thing. Does removing the network influences MAC-Adress or DNS settings?
Please also back port the solution to 3.2 (cf. Bug 37377).
Comment on attachment 6490 [details] dirty patch svn r57320 contains a clean patch (which does not use computer.open()).
Merged changed to UCS 4.0-0: svn r57366 Package: univention-directory-manager-modules Version: 10.0.29-13.1276.201501191442 Branch: ucs_4.0-0 Scope: errata4.0-0 YAML: 2014-11-28-univention-directory-manager-modules.yaml
Works and advisory is ok.
Reported again, 4.0-0 errata31 (Walle) Remark: einfacher Aufruf dieses Moduls führte zu dieser Fehlersituation
<http://errata.univention.de/ucs/4.0/43.html>