-
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
[mono] Full AOT error: Assertion at /__w/1/s/src/mono/mono/mini/method-to-ir.c:6456, condition `!sig->has_type_parameters' not met #91066
Comments
@fanyang-mono - The arm64 lane has been disabled for rc1 and all 8.0. Is this failure in x64 or arm64 ? |
It is happening on x64 and maybe reproducible on arm64 as well. It is related to the new feature |
I was able to reproduce this locally by building runtime test |
The assertion happened when Full AOT compile the UnsafeAccessor wrapper of the following method class Invalid
{
[UnsafeAccessor(UnsafeAccessorKind.Method, Name=nameof(ToString))]
public extern string NonStatic(string a);
[UnsafeAccessor(UnsafeAccessorKind.Method, Name=nameof(ToString))]
public static extern string CallToString<U>(U a); <--- This method
} This is the assertion it broke if (!cfg->gshared)
g_assert (!sig->has_type_parameters); (https://github.com/dotnet/runtime/blob/main/src/mono/mono/mini/method-to-ir.c#L6455-L6456) Clearly, the method Mono was trying to compile has a type parameter. However, it is not clear to me why gsharedvt was off. Need to look into why. |
It is expected that gsharedvt was off, because it is a wrapper of an extern method. |
This full aot issue was found on CI lane
linux-x64 Release AllSubsets_Mono_LLVMFullAot_RuntimeTests llvmfullaot
Link to the build failure: https://dev.azure.com/dnceng-public/public/_build/results?buildId=376086&view=logs&j=58dc7ccb-0414-5dd3-62a5-bf2e63258b7c&t=1a5c781f-8921-5969-0583-203a5fad54cb
The text was updated successfully, but these errors were encountered: