Univention Bugzilla – Bug 34543
BadStatusLine exception in appcenter not handled
Last modified: 2017-10-12 20:36:46 CEST
Reported by traceback feedback: 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/appcenter/__init__.py", line 101, in query applications = Application.all(force_reread=True) File "/usr/lib/pymodules/python2.6/univention/management/console/modules/appcenter/app_center.py", line 606, in all cls._get_category_translations(fake=not localize) File "/usr/lib/pymodules/python2.6/univention/management/console/modules/appcenter/app_center.py", line 484, in _get_category_translations fp = urlopen(url) File "/usr/lib/pymodules/python2.6/univention/management/console/modules/appcenter/util.py", line 96, in urlopen return urllib2.urlopen(request) File "/usr/lib/python2.6/urllib2.py", line 126, in urlopen return _opener.open(url, data, timeout) File "/usr/lib/python2.6/urllib2.py", line 391, in open response = self._open(req, data) File "/usr/lib/python2.6/urllib2.py", line 409, in _open '_open', req) File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain result = func(*args) File "/usr/lib/python2.6/urllib2.py", line 1192, in https_open return self.do_open(httplib.HTTPSConnection, req) File "/usr/lib/python2.6/urllib2.py", line 1156, in do_open h.request(req.get_method(), req.get_selector(), req.data, headers) File "/usr/lib/python2.6/httplib.py", line 914, in request self._send_request(method, url, body, headers) File "/usr/lib/python2.6/httplib.py", line 951, in _send_request self.endheaders() File "/usr/lib/python2.6/httplib.py", line 908, in endheaders self._send_output() File "/usr/lib/python2.6/httplib.py", line 780, in _send_output self.send(msg) File "/usr/lib/python2.6/httplib.py", line 739, in send self.connect() File "/usr/lib/python2.6/httplib.py", line 1115, in connect self._tunnel() File "/usr/lib/python2.6/httplib.py", line 706, in _tunnel (version, code, message) = response._read_status() File "/usr/lib/python2.6/httplib.py", line 355, in _read_status raise BadStatusLine(line) BadStatusLine Code from /usr/lib/python2.6/httplib.py 352 if not line: 353 # Presumably, the server closed the connection before 354 # sending a valid response. 355 raise BadStatusLine(line)
Also traceback feedback May also happen in other situations (u = UniventionUpdater()): Traceback: The init function of the module has failed: BadStatusLine: Traceback (most recent call last): File "/usr/lib/pymodules/python2.6/univention/management/console/protocol/modserver.py", line 228, in handle self.__handler.init() File "/usr/lib/pymodules/python2.6/univention/management/console/modules/appcenter/__init__.py", line 88, in init self.uu = UniventionUpdater(False) File "/usr/lib/pymodules/python2.6/univention/updater/tools.py", line 556, in __init__ self.ucr_reinit() File "/usr/lib/pymodules/python2.6/univention/updater/tools.py", line 611, in ucr_reinit assert self.server.access('/univention-repository/') File "/usr/lib/pymodules/python2.6/univention/updater/tools.py", line 437, in access res = UCSHttpServer.opener.open(req) File "/usr/lib/python2.6/urllib2.py", line 391, in open response = self._open(req, data) File "/usr/lib/python2.6/urllib2.py", line 409, in _open '_open', req) File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain result = func(*args) File "/usr/lib/python2.6/urllib2.py", line 1184, in http_open return self.do_open(httplib.HTTPConnection, req) File "/usr/lib/python2.6/urllib2.py", line 1157, in do_open r = h.getresponse() File "/usr/lib/python2.6/httplib.py", line 990, in getresponse response.begin() File "/usr/lib/python2.6/httplib.py", line 391, in begin version, status, reason = self._read_status() File "/usr/lib/python2.6/httplib.py", line 355, in _read_status raise BadStatusLine(line) BadStatusLine
Traceback from comment #1 was reported again, 4.0-1 errata113 (Walle)
Execution of command 'appcenter/invoke_dry_run' has failed: Traceback (most recent call last): File "%PY2.7%/univention/management/console/base.py", line 282, in execute function(self, request) File "%PY2.7%/univention/management/console/modules/appcenter/__init__.py", line 81, in _decorated return func(self, request, *a, **kwargs) File "%PY2.7%/univention/management/console/modules/appcenter/__init__.py", line 202, in invoke_dry_run self.invoke(request) File "%PY2.7%/univention/management/console/modules/appcenter/__init__.py", line 81, in _decorated return func(self, request, *a, **kwargs) File "%PY2.7%/univention/management/console/modules/decorators.py", line 188, in _response return function(self, request) File "%PY2.7%/univention/management/console/modules/appcenter/__init__.py", line 229, in invoke application = Application.find(application_id) File "%PY2.7%/univention/management/console/modules/appcenter/app_center.py", line 537, in find for application in cls.all(): File "%PY2.7%/univention/management/console/modules/appcenter/app_center.py", line 763, in all cls._get_category_translations(fake=not localize) File "%PY2.7%/univention/management/console/modules/appcenter/app_center.py", line 551, in _get_category_translations fp = urlopen(url) File "%PY2.7%/univention/management/console/modules/appcenter/util.py", line 166, in urlopen return urllib2.urlopen(request, timeout=60) File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen return _opener.open(url, data, timeout) File "/usr/lib/python2.7/urllib2.py", line 401, in open response = self._open(req, data) File "/usr/lib/python2.7/urllib2.py", line 419, in _open '_open', req) File "/usr/lib/python2.7/urllib2.py", line 379, in _call_chain result = func(*args) File "/usr/lib/python2.7/urllib2.py", line 1219, in https_open return self.do_open(httplib.HTTPSConnection, req) File "/usr/lib/python2.7/urllib2.py", line 1184, in do_open r = h.getresponse(buffering=True) File "/usr/lib/python2.7/httplib.py", line 1034, in getresponse response.begin() File "/usr/lib/python2.7/httplib.py", line 407, in begin version, status, reason = self._read_status() File "/usr/lib/python2.7/httplib.py", line 371, in _read_status raise BadStatusLine(line) BadStatusLine: '' Remark: errors Version: 4.0-3 errata285 (Walle)
Reported again, 4.0-3 errata313 (Walle)
Reported again when opening the repository settings module. Ticket#2016052321000094 UCS Version: 4.1-1 errata176 (Vahr) Traceback (most recent call last): BadStatusLine: '' raise BadStatusLine(line) File "/usr/lib/python2.7/httplib.py", line 371, in _read_status version, status, reason = self._read_status() File "/usr/lib/python2.7/httplib.py", line 407, in begin response.begin() File "/usr/lib/python2.7/httplib.py", line 1034, in getresponse r = h.getresponse(buffering=True) File "/usr/lib/python2.7/urllib2.py", line 1184, in do_open return self.do_open(httplib.HTTPConnection, req) File "/usr/lib/python2.7/urllib2.py", line 1211, in http_open result = func(*args) File "/usr/lib/python2.7/urllib2.py", line 379, in _call_chain '_open', req) File "/usr/lib/python2.7/urllib2.py", line 419, in _open response = self._open(req, data) File "/usr/lib/python2.7/urllib2.py", line 401, in open res = UCSHttpServer.opener.open(req, timeout=self.timeout) File "/usr/lib/pymodules/python2.7/univention/updater/tools.py", line 424, in access assert self.server.access(None, '/univention-repository/') File "/usr/lib/pymodules/python2.7/univention/updater/tools.py", line 651, in ucr_reinit self.ucr_reinit() File "/usr/lib/pymodules/python2
Reported again, 4.1-2 errata183 (Vahr)
Reported again, 4.1-3 errata239 (Vahr) Traceback (most recent call last): File "%PY2.7%/univention/management/console/protocol/modserver.py", line 271, in handle self.__handler.init() File "%PY2.7%/univention/management/console/modules/appcenter/__init__.py", line 148, in init self.uu = UniventionUpdater(False) File "%PY2.7%/univention/updater/tools.py", line 579, in __init__ self.ucr_reinit() File "%PY2.7%/univention/updater/tools.py", line 660, in ucr_reinit assert self.server.access(None, '') File "%PY2.7%/univention/updater/tools.py", line 424, in access res = UCSHttpServer.opener.open(req, timeout=self.timeout) File "/usr/lib/python2.7/urllib2.py", line 401, in open response = self._open(req, data) File "/usr/lib/python2.7/urllib2.py", line 419, in _open '_open', req) File "/usr/lib/python2.7/urllib2.py", line 379, in _call_chain result = func(*args) File "/usr/lib/python2.7/urllib2.py", line 1219, in https_open return self.do_open(httplib.HTTPSConnection, req) File "/usr/lib/python2.7/urllib2.py", line 1184, in do_open r = h.getresponse(buffering=True) File "/usr/lib/python2.7/httplib.py", line 1034, in getresponse response.begin() File "/usr/lib/python2.7/httplib.py", line 407, in begin version, status, reason = self._read_status() File "/usr/lib/python2.7/httplib.py", line 371, in _read_status raise BadStatusLine(line) BadStatusLine: ''
Version: 3.2-8 errata445 (Borgfeld) Remark: Fehler unbekannt. Abrufen von apt-get Befehlen schlägt ebenfalls größtenteils fehl Traceback(cb8ca57701c57e246068b2ff811716c6): Die Ausführung des Kommandos appcenter/query ist fehlgeschlagen: Traceback (most recent call last): File "%PY2.6%/univention/management/console/modules/__init__.py", line 218, in execute func( request ) File "%PY2.6%/univention/management/console/modules/decorators.py", line 305, in _response result = _multi_response(self, request) File "%PY2.6%/univention/management/console/modules/decorators.py", line 432, in _response for res in function(self, iterator, *nones): File "%PY2.6%/univention/management/console/modules/decorators.py", line 271, in _fake_func yield function(self, *args) File "%PY2.6%/univention/management/console/modules/appcenter/__init__.py", line 101, in query applications = Application.all(force_reread=True) File "%PY2.6%/univention/management/console/modules/appcenter/app_center.py", line 726, in all cls._get_category_translations(fake=not localize) File "%PY2.6%/univention/management/console/modules/appcenter/app_center.py", line 536, in _get_category_translations fp = urlopen(url) File "%PY2.6%/univention/management/console/modules/appcenter/util.py", line 126, in urlopen return urllib2.urlopen(request, timeout=60) File "/usr/lib/python2.6/urllib2.py", line 126, in urlopen return _opener.open(url, data, timeout) File "/usr/lib/python2.6/urllib2.py", line 391, in open response = self._open(req, data) File "/usr/lib/python2.6/urllib2.py", line 409, in _open '_open', req) File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain result = func(*args) File "/usr/lib/python2.6/urllib2.py", line 1192, in https_open return self.do_open(httplib.HTTPSConnection, req) File "/usr/lib/python2.6/urllib2.py", line 1156, in do_open h.request(req.get_method(), req.get_selector(), req.data, headers) File "/usr/lib/python2.6/httplib.py", line 914, in request self._send_request(method, url, body, headers) File "/usr/lib/python2.6/httplib.py", line 951, in _send_request self.endheaders() File "/usr/lib/python2.6/httplib.py", line 908, in endheaders self._send_output() File "/usr/lib/python2.6/httplib.py", line 780, in _send_output self.send(msg) File "/usr/lib/python2.6/httplib.py", line 739, in send self.connect() File "/usr/lib/python2.6/httplib.py", line 1115, in connect self._tunnel() File "/usr/lib/python2.6/httplib.py", line 706, in _tunnel (version, code, message) = response._read_status() File "/usr/lib/python2.6/httplib.py", line 355, in _read_status raise BadStatusLine(line) BadStatusLine
Version: 4.1-3 errata282 (Vahr) Execution of command 'appcenter/query' has failed: Traceback (most recent call last): File "%PY2.7%/univention/management/console/base.py", line 283, in execute function(self, request) File "%PY2.7%/univention/management/console/modules/decorators.py", line 318, in _response result = _multi_response(self, request) File "%PY2.7%/univention/management/console/modules/decorators.py", line 462, in _response return list(function(self, iterator, *nones)) File "%PY2.7%/univention/management/console/modules/decorators.py", line 284, in _fake_func yield function(self, *args) File "%PY2.7%/univention/management/console/modules/appcenter/__init__.py", line 182, in query self.update_applications() File "%PY2.7%/univention/management/console/modules/appcenter/__init__.py", line 196, in update_applications update.call_safe() File "%PY2.7%/univention/appcenter/actions/__init__.py", line 175, in call_safe return cls.call(**kwargs) File "%PY2.7%/univention/appcenter/actions/__init__.py", line 183, in call return obj.call_with_namespace(namespace) File "%PY2.7%/univention/appcenter/actions/__init__.py", line 189, in call_with_namespace result = self.main(namespace) File "%PY2.7%/univention/appcenter/actions/update.py", line 77, in main self._download_supra_files() File "%PY2.7%/univention/appcenter/actions/__init__.py", line 65, in _func return func(*args, **kwargs) File "%PY2.7%/univention/appcenter/actions/update.py", line 146, in _download_supra_files _download_supra_file('index.json.gz', version_specific=True) File "%PY2.7%/univention/appcenter/actions/update.py", line 133, in _download_supra_file response = urlopen(request) File "%PY2.7%/univention/appcenter/utils.py", line 250, in urlopen return urllib2.urlopen(request, timeout=60) File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen return _opener.open(url, data, timeout) File "/usr/lib/python2.7/urllib2.py", line 401, in open response = self._open(req, data) File "/usr/lib/python2.7/urllib2.py", line 419, in _open '_open', req) File "/usr/lib/python2.7/urllib2.py", line 379, in _call_chain result = func(*args) File "%PY2.7%/univention/appcenter/utils.py", line 237, in https_open return self.do_open(HTTPSConnection, req) File "/usr/lib/python2.7/urllib2.py", line 1184, in do_open r = h.getresponse(buffering=True) File "/usr/lib/python2.7/httplib.py", line 1072, in getresponse response.begin() File "/usr/lib/python2.7/httplib.py", line 408, in begin version, status, reason = self._read_status() File "/usr/lib/python2.7/httplib.py", line 372, in _read_status raise BadStatusLine(line) BadStatusLine: ''
Do we know in which situation this happens?
(In reply to Stefan Gohmann from comment #10) > Do we know in which situation this happens? When the appcenter server closes the connection immediately (socket.read(x) == EOF == ''). E.g. due to high load. This was at least 10 times reported and is therefore one of the most reported tracebacks we have.
Reported again, 4.1-4 errata353 (Vahr) Remark: Neuen Member Server angelegt. 2 Netzwerkanschlüsse mittles Bonding verbunden über UCM Netzwerk Modul
Reported again, 4.1-4 errata404 (Vahr)
Remark: Das passiert bei einem schlecht konfigurierten Proxy... also einfach nur Squid auf einem Member installieren und auf dem Master ucr set proxy/http auf den Member setzen.
Version: 4.1-4 errata408 (Vahr)
catch httplib.BadStatusLine in possible_network_error and give a rather neutral error message replaced all UMC_CommandError with UMC_Error in umc/python/appcenter/__init__.py univention-appcenter: r79351
Works great
<http://errata.software-univention.de/ucs/4.2/22.html>
Reported again, 4.1-4 errata420 (Vahr)
Version: 4.1-4 errata420 (Vahr)