-
Notifications
You must be signed in to change notification settings - Fork 748
On shutdown from Python release all slot holders #1720
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The errors we are hitting here are the reason why we didn't do the full shutdown in the past. They only occur when running the full suite in sequence (I'm trying to find the minimal permutation that "works", but it's tricky). |
The minimal call I have found so far that reproduces the segfault is
EDIT: Even further:
Code for this test: pythonnet/tests/test_subclass.py Lines 177 to 198 in eec30c0
EDIT: Latest result: If the whole Just excluding EDIT: The exact line creating the leak(?) is pythonnet/tests/test_subclass.py Line 185 in eec30c0
|
@lostmsu This runs through now, but we are not doing the |
@filmor you would be looking for callers of |
dbb510b
to
01f473f
Compare
I know it is annoying, but can you untangle the fix for the issue from the syntax changes? Also, I think you might have accidentally changed line endings in the interop .tt file. |
BTW, re the original issue: I haven't looked at it yet, but it might have to do with the default |
Superseded by #1712 |
What does this implement/fix? Explain your changes.
Before this fix slots of reflected types were not released to Python defaults leaving Python referencing managed code after managed runtime has already shut down.
In the original bug, the runtime in question is Mono after
mono_jit_cleanup
.This is an extension of #1712 and actually calls shutdown from Python.
Does this close any currently open issues?
#1683