View | Details | Raw Unified | Return to bug 47114
Collapse All | Expand All

(-)a/management/univention-management-console/src/univention/management/console/base.py (-2 / +9 lines)
 Lines 289-295   def thread_finished_callback(self, thread, result, request): Link Here 
289
			self.finished(request.id, result)
289
			self.finished(request.id, result)
290
			return
290
			return
291
		method = '%s: %s' % (thread.name, ' '.join(request.arguments))
291
		method = '%s: %s' % (thread.name, ' '.join(request.arguments))
292
		self.__error_handling(request, method, *thread.exc_info)
292
		self.__error_handling(request, method, thread.exc_info[0], thread.exc_info[1], thread.trace)
293
293
294
	def error_handling(self, etype, exc, etraceback):
294
	def error_handling(self, etype, exc, etraceback):
295
		if isinstance(exc, udm_errors.ldapError) and isinstance(getattr(exc, 'original_exception', None), ldap.SERVER_DOWN):
295
		if isinstance(exc, udm_errors.ldapError) and isinstance(getattr(exc, 'original_exception', None), ldap.SERVER_DOWN):
 Lines 309-314   def __error_handling(self, request, method, etype, exc, etraceback): Link Here 
309
		result = None
309
		result = None
310
		headers = None
310
		headers = None
311
		error = None
311
		error = None
312
		trace = etraceback
313
		if isinstance(etraceback, list):
314
			etraceback = None
312
		try:
315
		try:
313
			try:
316
			try:
314
				self.error_handling(etype, exc, etraceback)
317
				self.error_handling(etype, exc, etraceback)
 Lines 329-337   def __error_handling(self, request, method, etype, exc, etraceback): Link Here 
329
			}
332
			}
330
		except:
333
		except:
331
			status = MODULE_ERR_COMMAND_FAILED
334
			status = MODULE_ERR_COMMAND_FAILED
335
			if etraceback is None:  # thread.exc_info doesn't contain a traceback object anymore: Bug #47114
336
				trace = ''.join(trace + traceback.format_exception_only(sys.exc_info()[:2]))
337
			else:
338
				trace = traceback.format_exc()
332
			error = {
339
			error = {
333
				'command': ('%s %s' % (' '.join(request.arguments), '(%s)' % (request.flavor,) if request.flavor else '')).strip().decode('utf-8', 'replace'),
340
				'command': ('%s %s' % (' '.join(request.arguments), '(%s)' % (request.flavor,) if request.flavor else '')).strip().decode('utf-8', 'replace'),
334
				'traceback': traceback.format_exc().decode('utf-8', 'replace')
341
				'traceback': trace.decode('utf-8', 'replace')
335
			}
342
			}
336
			message = self._('Internal server error during "%(command)s".') % error
343
			message = self._('Internal server error during "%(command)s".') % error
337
		MODULE.process(str(message))
344
		MODULE.process(str(message))

Return to bug 47114