Repository navigation
Conversation
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.
Hey all,
The problem is as follows:
Janus.__repr__obtains the instance address throughgetVariableDef().front().getJanusInstance(). A default-constructedJanushas no variables, so accessing the first element invokes undefined behavior.This causes a segmentation fault when evaluating:
The failure was reproduced on Linux with Python 3.12.14: the subprocess terminated with
SIGSEGV(return code-11). Ordinary object inspection in a REPL, notebook, debugger, or assertion diagnostic can therefore terminate the interpreter.Both
__repr__and__str__also omit the closing quote aroundxml_filename.Changes
__repr__, removingthe dependency on a populated variable collection.
const Janus &in the representation callback.empty-object string formatting, and loaded-model representation
and instance identity.
The crash regression runs in a subprocess so a future native crash is
reported as a test failure without terminating the entire test suite.
Validation
Built the native bindings using GCC 13.3, CMake 3.31.10, Python 3.12.14, and the repository's pinned submodules.
The seven existing failures all occur in
test_set_var_def_example.pywhile loadingSetVarDefExample.xml. Thegt_function05table reports 5 entries against 25 breakpoints. These failures were reproduced on the unmodified baseline; this PR does not change the example or its parsing behavior.Cheers,
Michael