-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Assert "rank < MAX_RANK" in runtime/src/coreclr/classlibnative/bcltype/arraynative.cpp Line: 812 #91349
Comments
cc @AndyAyersMS since this involves the edge count randomization |
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsWhile testing Orleans with a Checked build of the .NET 8 Preview 7 runtime, I hit the following assert while running Orleans.Serialization.UnitTests on Linux x64:
For reference, I reproduced this running Ubuntu-22.04 in WSL2.
|
Oh hey @amanasifkhalid, didn't notice that you were the one who filed this 😄 |
@amanasifkhalid did you upgrade all the orleans projects, or just some subset? |
Also did you try a clean I'm asking because when I try installing the checked jit first CSC is failing with exit code 134. Perhaps my jit doesn't match, will look into this too. |
If you have your changes still, can you put them on a branch of a fork of orleans that I can pull down, or else package them up as a patch? |
@AndyAyersMS I upgraded all projects to .NET 8, and only used the Checked JIT to build and run tests, so I started from a clean slate. I didn't hit the CSC error... For consistency, I copied over I've pushed my repro setup here -- setting |
Also sorry for the red herring, but I tried reproducing this again, and I can hit the assert without |
Since the assert comes from the runtime it's likely it will repro with just a checked runtime/SPC and a release JIT. Anyways, let me get a repro and I'll dig into why this happens. |
Ok, I can repro:
|
Stack trace:
Assert is _ASSERTE(rank < MAX_RANK); // Ensures that the stack buffer size allocations below won't overlow with #define MAX_RANK 32 and the code is requesting a rank-32 array:
elsewhere we see 32 should be ok: if (rank > MAX_RANK)
{
ThrowTypeLoadException(pKey, IDS_CLASSLOAD_RANK_TOOLARGE);
} so the assert in arraynative.cpp is too aggressive, and should be _ASSERTE(rank <= MAX_RANK); // Ensures that the stack buffer size allocations below won't overflow |
While testing Orleans with a Checked build of the .NET 8 Preview 7 runtime, I hit the following assert while running Orleans.Serialization.UnitTests on Linux x64:
Assert "rank < MAX_RANK" in runtime/src/coreclr/classlibnative/bcltype/arraynative.cpp Line: 812
. To reproduce:dotnet test -c Release
For reference, I reproduced this running Ubuntu-22.04 in WSL2.
cc @JulieLeeMSFT @ReubenBond
The text was updated successfully, but these errors were encountered: