Avoid segfault when raising Python errors that didn't set an exception. #1410
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.
This fixes #1404 in the sense that we no longer segfault when calling
import_builtins()$globals()
.The segfault happens because the call to
globals()
fails but never sets an exceptionType in Python side, which is expected by thepy_fetch_error()
.The reason why this call fails is still unkown to me (no backtrace makes it harder to figure it out), but it it seems that, the Python interpreter used by reticulate has no default module imported, causing the globals dictionary to not exist.
I think we might be missing somehting like:
reticulate/src/python.cpp
Lines 2967 to 2968 in 9a712cb
during the initialization of reticulate's interpreter.
Previous reticulate versions raise: