Univention Bugzilla – Bug 34238
Suggestion of master FQDN fails when non-authoritative DNS server is set
Last modified: 2015-08-25 10:35:42 CEST
We received the following traceback: 3.2-0 errata61 (Borgfeld) Die Ausführung des Kommandos join/master 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/univention/management/console/modules/decorators.py", line 305, in _response result = _multi_response(self, request) File "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py", line 432, in _response for res in function(self, iterator, *nones): File "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py", line 271, in _fake_func yield function(self, *args) File "/usr/lib/pymodules/python2.6/univention/management/console/modules/join/__init__.py", line 324, in master return get_master_dns_lookup() File "/usr/lib/pymodules/python2.6/univention/management/console/modules/join/__init__.py", line 63, in get_master_dns_lookup result = dns.resolver.query(query, 'SRV') File "/usr/lib/pymodules/python2.6/dns/resolver.py", line 732, in query return get_default_resolver().query(qname, rdtype, rdclass, tcp, source) File "/usr/lib/pymodules/python2.6/dns/resolver.py", line 672, in query answer = Answer(qname, rdtype, rdclass, response) File "/usr/lib/pymodules/python2.6/dns/resolver.py", line 121, in __init__ raise NoAnswer NoAnswer The UMC join module suggests the FQDN for the master system by querying the DNS server. The failure happens when the nameserver is not authoritative (The DNS request is then redirected). http://stackoverflow.com/questions/18898847/dnspython-raises-noanswer-in-spite-of-query-answer suggests to replace dns.resolver.query() by dns.query.udp(). It is probably easier to just catch the exception and letting the user decide about the FQDN. I guess on the system is a wrong DNS server configured which is not part of the UCS domain.
Reported again. Remark: after update to 3.2.1 from 3.2.0 Version: 3.2-1 errata78 (Borgfeld)
Reported once again (maybe the same system though)
Reported once again. 3.2-1 errata51
Reported again Ticket#: 2014072821000254
If you configured the wrong Domain DNS server in system-setup, you get the following error: Die Ausführung des Kommandos join/master ist fehlgeschlagen: Traceback (most recent call last): File "/usr/lib/pymodules/python2.6/univention/management/console/modules/__init__.py", line 218, in execute func( request ) File "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py", line 305, in _response result = _multi_response(self, request) File "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py", line 432, in _response for res in function(self, iterator, *nones): File "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py", line 271, in _fake_func yield function(self, *args) File "/usr/lib/pymodules/python2.6/univention/management/console/modules/join/__init__.py", line 324, in master return get_master_dns_lookup() File "/usr/lib/pymodules/python2.6/univention/management/console/modules/join/__init__.py", line 63, in get_master_dns_lookup result = dns.resolver.query(query, 'SRV') File "/usr/lib/pymodules/python2.6/dns/resolver.py", line 732, in query return get_default_resolver().query(qname, rdtype, rdclass, tcp, source) File "/usr/lib/pymodules/python2.6/dns/resolver.py", line 662, in query timeout = self._compute_timeout(start) File "/usr/lib/pymodules/python2.6/dns/resolver.py", line 541, in _compute_timeout raise Timeout Timeout
Reported again 3.2-3 errata206 (Borgfeld).
Reported again: 3.2-3 errata178
Reported again: 4.0-0 errata10 (Walle)
Reported again: 4.0-0 errata10 (Walle) Remark: Trying to add a backup UCS domain controller. Getting connection refused
An error handling has been added which should catch most exceptions which are a result of a failed dns query. In this case a warning message is diplayed. (r 57437)
Typo in translation: Bitte rufen sSie das "Das System wurde bisher noch nicht in eine Domäne Gejoined." → Das System ist noch keiner Domäne beigetreten. "}else{" → "} else {" "The DNS server settings can be adjusted in the " → "The DNS server settings can be adjusted in the {0}." → add missing trailing dot and use lang.replace(..., [tools.linkToModule()])
-typos have been fixed -trailing dot has been added
* The leading dot is still missing after the link to the network module. * Please also check if the network module exists otherwise there is the string 'none'. * The original problem is not solved: If the DNS query contains a delegated answer the FQDN is not detected. See http://stackoverflow.com/questions/18898847/dnspython-raises-noanswer-in-spite-of-query-answer. The article suggests to use dns.query.udp(). * Wording is not optimal, we could chat about this. I have a patch for you. * It would also be nice to reduce the timeout. Instead of waiting 25 seconds that the module is opened we should reduce this to at maximum 3 seconds.
* There is also no check if data.result.error_message is None → in case the domain is not found (without NXDOMAIN).
Timeout has been set to 3 seconds, however using dns.query.udp() would be too much efford so method of dns lookup stays the same. The error messages and checks have been adapted.
OK: Exceptions (NoAnswer, Timeout, DNSException, NXDOMAIN) OK: de|en OK: DNS timeout 3 seconds OK: network link OK: YAML
<http://errata.univention.de/ucs/4.0/69.html>
Reported again, 3.2-6 errata340 (Borgfeld)