-
Notifications
You must be signed in to change notification settings - Fork 5k
Assert failure: CheckInstrBytePattern(base[offset] & 0xF8, 0x58, base[offset]) #115120
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
Comments
Tagging subscribers to this area: @mangod9 |
is this fail only on x86? |
looks like it. https://dev.azure.com/dnceng-public/public/_build/results?buildId=1027838&view=ms.vss-test-web.build-test-results-tab |
ping @mangod9 |
There were some possibly related changes made by @filipnavara recently. |
Do we have some commit range where this may have started happening? While I did touch some of the code I didn't make any conscious changes for the current default runtime configuration (ie. no |
I've taken a look at the dump. This is the code of the method that it is unwinding from (the actual location is marked):
It ends up calling
At that point, it tries to invoke runtime/src/coreclr/vm/gc_unwind_x86.inl Lines 2500 to 2547 in ff5fdab
The relevant
So due to So it seems to me some change in x86 codegen is probably breaking the unwinding code assumptions. @dotnet/jit-contrib, were there any recent changes in this area? |
@filipnavara - is it related to #115089? |
It first started failing on 4/26 |
That PR affects only built-in COM interop and not JIT codegen. I don't see anything related in the failing tests.
I briefly checked the commits on that day. There was nothing quite standing out, although there was the async2 VM merge in the timeframe. |
Alright, found the commit range to be 77f71dc...4144fda |
I assume you mean 4144fda...77f71dc (switched the start/end) Thanks, that's helpful! |
JFYI, my commits:
|
The commit range is still too large to figure out a potential culprit. @kunalspathak it would be great to see what the code generated for the method looked like before the range you've mentioned. Maybe seeing the diff would help us better understand which change could have done that. |
It looks like the dump is from running JIT/Methodical/VT/callconv/jumps1.il (not the test listed at the top, JIT/Methodical/flowgraph/dev10_bug642944/GCMaskForGSCookie/GCMaskForGSCookie.dll) I'm guessing the change that caused this is #114899. @jakobbotsch What was the purpose of this change? @janvorli Should the x86 unwinder be able to handle either the "pop ecx" or "lea" form, and adjust appropriately? |
The change is for the potential case where there is a Note that we had similar case already that was handled in the same way: runtime/src/coreclr/jit/codegenxarch.cpp Lines 10557 to 10575 in c68a1be
Here the other case emits |
Yes, I think the unwinder should be modified to accommodate to what JIT generates. It is good that we now understand where the change comes from and that it was intentional. |
runtime-coreclr gcstress-extra: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1027838&view=ms.vss-test-web.build-test-results-tab
The text was updated successfully, but these errors were encountered: