-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Add missing exception checkpoint #41098
Conversation
Tagging subscribers to this area: @BrzVlad |
Enable the tests (remove from issues.target file) to make sure change actually fixes the affected ones in #38826 |
Oops, good catch! |
@@ -3847,6 +3847,7 @@ interp_exec_method (InterpFrame *frame, ThreadContext *context, FrameClauseArgs | |||
frame->state.ip = ip + 6; | |||
ves_pinvoke_method (csignature, (MonoFuncV)code, context, frame, &retval, save_last_error, cache, sp); | |||
|
|||
EXCEPTION_CHECKPOINT_GC_UNSAFE; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aren't we back in GC safe here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Followed the same pattern we did for MINT_CALLI_NAT_FAST
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not clear to me why we're in GC unsafe there, though I guess if it throws we must be? @BrzVlad do you know what's going on here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is the story behind it mono/mono#17016. You could also read the issue it mentioned in this PR. In short, usually the interpreter operates in GC Unsafe state.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please check the logs to verify if all the Interop/NativeLibrary/API/NativeLibraryTests were included and passed prior to merging the PR.
I saw this from helix log:
There are in total 4 tests under |
Should the two disabled tests pass with your change, or are they another issue ? |
ResolveUnmanagedDllTests and CallbackStressTest_TargetUnix are disabled globally for Mono; this PR looks fine. |
Fixes #38826