mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Fix Sphinx crashes on parallel build with an extension which raises unserializable exception
This commit is contained in:
2
CHANGES
2
CHANGES
@@ -27,6 +27,8 @@ Bugs fixed
|
||||
* #3294: ``add_latex_package()`` make crashes non-LaTeX builders
|
||||
* The caption of table are rendered as invalid HTML (refs: #3287)
|
||||
* #3268: Sphinx crashes with requests package from Debian jessie
|
||||
* #3284: Sphinx crashes on parallel build with an extension which raises
|
||||
unserializable exception
|
||||
|
||||
|
||||
Release 1.5.1 (released Dec 13, 2016)
|
||||
|
||||
@@ -71,10 +71,9 @@ class SphinxParallelError(SphinxError):
|
||||
|
||||
category = 'Sphinx parallel build error'
|
||||
|
||||
def __init__(self, orig_exc, traceback):
|
||||
self.orig_exc = orig_exc
|
||||
def __init__(self, message, traceback):
|
||||
self.message = message
|
||||
self.traceback = traceback
|
||||
|
||||
def __str__(self):
|
||||
return traceback.format_exception_only(
|
||||
self.orig_exc.__class__, self.orig_exc)[0].strip()
|
||||
return self.message
|
||||
|
||||
@@ -73,7 +73,8 @@ class ParallelTasks(object):
|
||||
ret = func(arg)
|
||||
pipe.send((False, ret))
|
||||
except BaseException as err:
|
||||
pipe.send((True, (err, traceback.format_exc())))
|
||||
errmsg = traceback.format_exception_only(err.__class__, err)[0].strip()
|
||||
pipe.send((True, (errmsg, traceback.format_exc())))
|
||||
|
||||
def add_task(self, task_func, arg=None, result_func=None):
|
||||
tid = self._taskid
|
||||
|
||||
Reference in New Issue
Block a user