[MRG] Fix exception handling in nested parallel calls#696
Merged
ogrisel merged 3 commits intojoblib:masterfrom Jun 18, 2018
Merged
[MRG] Fix exception handling in nested parallel calls#696ogrisel merged 3 commits intojoblib:masterfrom
ogrisel merged 3 commits intojoblib:masterfrom
Conversation
4f95bdc to
37e9d1e
Compare
Codecov Report
@@ Coverage Diff @@
## master #696 +/- ##
==========================================
- Coverage 95.12% 95.08% -0.05%
==========================================
Files 40 40
Lines 5663 5692 +29
==========================================
+ Hits 5387 5412 +25
- Misses 276 280 +4
Continue to review full report at Codecov.
|
84446f9 to
a7fc8f4
Compare
When doing nested parallel calls, all exception would be mapped to the generic JoblibException therefore loosing the original exception type information (e.g. ValueError). Furthermore Python 3 already has a builtin __cause__ exception nesting system that is used by default to trace exception that occured on a remote worker process. The combination of the Python 3 __cause__ nesting and the Joblib system would yield overwhelmingly verbose and redundant exception reports. To fix those two problems, we: - disable useless exception wrapping under Python 3 to only rely on the built-in nesting mechanism; - fix nested exception wrapping under Python 2 to preserve type information.
a7fc8f4 to
2ecb9e1
Compare
Contributor
Author
|
I had a quick chat with @GaelVaroquaux about this PR. He seemed not opposed to the general idea. As it's very easy to revert in case of a problem, let me merge this to make it part of the next release. |
yarikoptic
added a commit
to yarikoptic/joblib
that referenced
this pull request
Jul 28, 2018
* tag '0.12': (116 commits) Release 0.12 typo typo typo ENH add initializer limiting n_threads for C-libs (joblib#701) DOC better parallel docstring (joblib#704) [MRG] Nested parallel call thread bomb mitigation (joblib#700) MTN vendor loky2.1.3 (joblib#699) Make it possible to configure the reusable executor workers timeout (joblib#698) MAINT increase timeouts to make test more robust on travis DOC: use the .joblib extension instead of .pkl (joblib#697) [MRG] Fix exception handling in nested parallel calls (joblib#696) Fix skip test lz4 not installed (joblib#695) [MRG] numpy_pickle: several enhancements (joblib#626) Introduce Parallel.__call__ backend callbacks (joblib#689) Add distributed on readthedocs (joblib#686) Support registration of external backends (joblib#655) [MRG] Add a dask.distributed example (joblib#613) ENH use cloudpickle to pickle interactively defined callable (joblib#677) CI freeze the version of sklearn0.19.1 and scipy1.0.1 (joblib#685) ...
yarikoptic
added a commit
to yarikoptic/joblib
that referenced
this pull request
Jul 28, 2018
* releases: (121 commits) Release 0.12.1 fix kwonlydefaults key error in filter_args (joblib#715) MNT fix some "undefined name" flake8 warnings (joblib#713). from importlib import reload for Python 3 (joblib#675) MTN vendor loky2.1.4 (joblib#708) Release 0.12 typo typo typo ENH add initializer limiting n_threads for C-libs (joblib#701) DOC better parallel docstring (joblib#704) [MRG] Nested parallel call thread bomb mitigation (joblib#700) MTN vendor loky2.1.3 (joblib#699) Make it possible to configure the reusable executor workers timeout (joblib#698) MAINT increase timeouts to make test more robust on travis DOC: use the .joblib extension instead of .pkl (joblib#697) [MRG] Fix exception handling in nested parallel calls (joblib#696) Fix skip test lz4 not installed (joblib#695) [MRG] numpy_pickle: several enhancements (joblib#626) Introduce Parallel.__call__ backend callbacks (joblib#689) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When doing nested parallel calls, all exception would be mapped to the generic
JoblibExceptiontherefore losing the original exception type information (e.g.ValueError).Furthermore, Python 3 already has a builtin
__cause__exception nesting system that is used by default to trace exception that occurred on a remote worker process. The combination of the Python 3__cause__nesting and the Joblib system yields overwhelmingly verbose and redundant exception reports.To fix those two problems, we: