Bug 37763 - DNS timeout when opening school installer prevents installing UCS@school
DNS timeout when opening school installer prevents installing UCS@school
Status: CLOSED FIXED
Product: UCS@school
Classification: Unclassified
Component: UMC - Installer
UCS@school 3.1 R2
Other Linux
: P5 normal (vote)
: UCS@school 4.0 Errata
Assigned To: Florian Best
Alexander Kramer
:
Depends on: 32050
Blocks:
  Show dependency treegraph
 
Reported: 2015-02-11 09:27 CET by Florian Best
Modified: 2015-02-27 15:19 CET (History)
1 user (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional): Error handling, External feedback, Usability
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Florian Best univentionstaff 2015-02-11 09:27:07 CET
+++ This bug was initially created as a clone of Bug #32050 +++

Ticket#2013072321001826

If the DNS-Lookup for the DC-Master fails, the UMC configuration wizard reports:

---
UCS@school can only be installed on the system roles master domain controller, backup domain controller, or slave domain controller.
---

==> /var/log/univention/management-console-module-schoolinstaller.log <==
24.07.13 11:55:33.165  MODULE      ( PROCESS ) : Execution of command 'schoolinstaller/query' has failed:

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 282, in _response
    result = _multi_response(self, request)
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py", line 384, in _response
    for res in function(self, iterator, *nones):
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py", line 266, in _fake_func
    yield function(self, *args)
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/schoolinstaller/__init__.py", line 468, in query
    'guessed_master': get_master_dns_lookup(),
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/schoolinstaller/__init__.py", line 152, 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 608, in query
    timeout = self._compute_timeout(start)
  File "/usr/lib/pymodules/python2.6/dns/resolver.py", line 541, in _compute_timeout
    raise Timeout
Timeout


==> /var/log/univention/management-console-web-server.log <==
24.07.13 11:55:33.167  MAIN        ( PROCESS ) : CPCommand (172.25.10.250:38457) response status code: 591
24.07.13 11:55:33.168  MAIN        ( PROCESS ) : CPCommand (172.25.10.250:38457) response message: Execution of command 'schoolinstaller/query' has failed:

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 282, in _response
    result = _multi_response(self, request)
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py", line 384, in _response
    for res in function(self, iterator, *nones):
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py", line 266, in _fake_func
    yield function(self, *args)
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/schoolinstaller/__init__.py", line 468, in query
    'guessed_master': get_master_dns_lookup(),
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/schoolinstaller/__init__.py", line 152, 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 608, in query
    timeout = self._compute_timeout(start)
  File "/usr/lib/pymodules/python2.6/dns/resolver.py", line 541, in _compute_timeout
    raise Timeout
Timeout

24.07.13 11:55:33.168  MAIN        ( PROCESS ) : CPCommand (172.25.10.250:38457) response result: None
Comment 1 Alexander Kramer univentionstaff 2015-02-20 11:06:06 CET
I got another error after I set the ucr variable nameserver1 to an invalid address and still had a valid nameserver2:

message: "Eine Option für install hat den falschen Typ: 1 Fehler aufgetreten"
result: {master:Wert ist ungültig}
master: "Wert ist ungültig"
status: 409

Florian adapted the following lines in schoolinstaller/__init__.py:

100 class HostSanitizer(StringSanitizer):
+ 101         def _sanitize(self, value, name, further_args):
+ 102                 if not value and ucr['server/role'] ==   
                    'domaincontroller_master':
                    # or further_args.get('setup') in 
                   ('singlemaster', 'multimaster'):
+ 103                         return ''
Comment 2 Florian Best univentionstaff 2015-02-20 15:10:05 CET
Fixed, a warning is displayed, too. svn r58301
Comment 3 Alexander Kramer univentionstaff 2015-02-25 12:44:11 CET
as discussed:

- adapted the first sentence that the dns lookup failed (no maybe ...)
- set the timeout to 6
- show the warning only on slaves (at the credentials, fqdn)
Comment 4 Florian Best univentionstaff 2015-02-25 12:51:09 CET
(In reply to Alexander Kramer from comment #3)
> as discussed:
> 
> - adapted the first sentence that the dns lookup failed (no maybe ...)
> - set the timeout to 6
> - show the warning only on slaves (at the credentials, fqdn)
done, package builds.
Comment 5 Alexander Kramer univentionstaff 2015-02-25 13:37:50 CET
OK - debian/changelog
OK - changelog
OK - warning message
-- adpated first sentence: Could not find the DNS entry for the domaincontroller master.
-- is only displayed on system role slave
OK - set Timeout to 6seconds: resolver.lifetime = 6.0
Comment 6 Sönke Schwardt-Krummrich univentionstaff 2015-02-27 15:19:41 CET
UCS@school 4.0 v2 has been released:
http://docs.univention.de/release-notes-ucsschool-4.0v2-de.html

If this error occurs again, please use "Clone This Bug".