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)) |