Univention Bugzilla – Bug 51736
IP change with multiple DNS zones produces traceback
Last modified: 2020-07-27 15:26:54 CEST
Steps to reproduce: * Create a system (used IP managed client, any other will do the same) with one IP address and add (by default) forward and reverse DNS entries: ie: ap1.multi.ucs --> 10.250.200.8 10.250.200.8 --> ap1.multi.ucs * Create an additional forward DNS zone Here used "multi2.ucs" * In (red) computers module add the name for the second domain so we have: ap1.multi.ucs --> 10.250.200.8 ap1.multi2.ucs --> 10.250.200.8 10.250.200.8 --> ap1.multi.ucs * In (blue) DNS module add second reverse entry so we have: ap1.multi.ucs --> 10.250.200.8 ap1.multi2.ucs --> 10.250.200.8 10.250.200.8 --> ap1.multi.ucs AND ap1.multi2.ucs ======================= root@master:~# host ap1.multi.ucs ap1.multi.ucs has address 10.250.200.8 root@master:~# host ap1.multi2.ucs ap1.multi2.ucs has address 10.250.200.8 root@master:~# host 10.250.200.8 8.200.250.10.in-addr.arpa domain name pointer ap1.multi2.ucs. 8.200.250.10.in-addr.arpa domain name pointer ap1.multi.ucs. ======================= NOW: * Change the IP address of the system within (red) UMC module to a free number (here:80 instead of 8), including the matching entries of the same page. You will get a traceback: ================================================================== Interner Server-Fehler in "udm/put (computers/computer)". Request: udm/put (computers/computer) File "/usr/lib/python2.7/dist-packages/notifier/threads.py", line 80, in _run result = self._function() File "/usr/lib/python2.7/dist-packages/notifier/__init__.py", line 104, in __call__ return self._function(*tmp, **self._kwargs) File "/usr/lib/python2.7/dist-packages/univention/management/console/modules/udm/__init__.py", line 440, in _thread module.modify(properties) File "/usr/lib/python2.7/dist-packages/univention/management/console/modules/udm/udm_ldap.py", line 645, in modify obj.modify() File "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", line 650, in modify dn = self._modify(modify_childs, ignore_license=ignore_license, response=response) File "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", line 1331, in _modify self._ldap_post_modify() File "/usr/lib/python2.7/dist-packages/univention/admin/handlers/computers/ipmanagedclient.py", line 222, in _ldap_post_modify univention.admin.handlers.simpleComputer._ldap_post_modify(self) File "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", line 2722, in _ldap_post_modify self.__remove_dns_reverse_object(self['name'], None, entry) File "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", line 2275, in __remove_dns_reverse_object modify(rdn, zone) File "/usr/lib/python2.7/dist-packages/univention/admin/handlers/__init__.py", line 2248, in modify if len(attributes['pTRRecord']) == 1: KeyError: 'pTRRecord' ==================================================================
Notes: Appears to be a regression as (according to customer) it flawlessly worked with UCS UCS 4.4-5 e528 but since the upgrade to 4.4-4 e652 the error appears. The entries itself appear to be written properly after the traceback: root@master:~# host 10.250.200.8 Host 8.200.250.10.in-addr.arpa. not found: 3(NXDOMAIN) root@master:~# host 10.250.200.80 80.200.250.10.in-addr.arpa domain name pointer ap1.multi.ucs. 80.200.250.10.in-addr.arpa domain name pointer ap1.multi2.ucs. root@master:~# host ap1.multi2.ucs ap1.multi2.ucs has address 10.250.200.80 root@master:~# host ap1.multi.ucs ap1.multi.ucs has address 10.250.200.80
*** This bug has been marked as a duplicate of bug 44710 ***