Fix cases where startup errors can cause crashes.#600
Merged
Conversation
ndjensen
approved these changes
Mar 13, 2025
| PyObject *modjep = PyDict_GetItemString(sysmodules, "_jep"); | ||
| if (!modjep && PyErr_Occurred()) { | ||
| handle_startup_exception(env, "Error checking for exisitng module _jep"); | ||
| handle_startup_exception(env, "Error checking for exisitng module _jep", 1); |
Member
There was a problem hiding this comment.
Existing problem but should be fixed, the spelling of "existing".
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.
Using invalid SubInterpreterOptions was causing a crash rather than throwing an exception even though we have checks to throw an exception. It turns out we were trying to throw a JepException before initializing the variable that holds JepException is initialized. We have an existing function to handle startup errors before JepException is available but that function checks for python exceptions and errors during python initialization probably shouldn't use the python APIs. This change makes the python error check optional in
handle_startup_exceptionand changes any startup errors that useTHROW_JEPto usehandle_startup_exceptioninstead.