Skip to content

Update assert to handle object[] element type #105287

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

Merged
merged 2 commits into from
Jul 23, 2024

Conversation

AaronRobinsonMSFT
Copy link
Member

Fixes #105186

@jakobbotsch this is very odd. This code path is the same on all platforms, but only seems to be taken with these tests on non-Windows platforms. That is the reason it didn't fail on Windows. Any ideas why exceptions are being thrown on non-Windows, but not on Windows?

Copy link
Contributor

Tagging subscribers to this area: @mangod9
See info in area-owners.md if you want to be subscribed.

@jakobbotsch
Copy link
Member

jakobbotsch commented Jul 23, 2024

Any ideas why exceptions are being thrown on non-Windows, but not on Windows?

The JIT is generating direct call to CORINFO_HELP_OVERFLOW for these tests on both Windows and Linux, so seems like there is something different there. It is bound to JIT_Overflow that does COMPlusThrow(kOverflowException);, but apparently that does not end up in this code on Windows.
Maybe @janvorli has better idea what is different here.

BTW, while stepping through this on Windows I ended up in this weird code:

while (count < 20 && sp < stopPoint)
{
sp += 1;
}

@janvorli
Copy link
Member

BTW, while stepping through this on Windows I ended up in this weird code:

I've noticed that recently too. This is a remainder of logging of a piece of stack into stresslog, see this in coreclr 3.1:
https://github.com/dotnet/coreclr/blob/v3.1.32/src/vm/excep.cpp#L8139-L8147.
The body of the loop was removed , but blame on github somehow isn't able to show me the change that did that.

@jkotas
Copy link
Member

jkotas commented Jul 23, 2024

his is a remainder of logging of a piece of stack into stresslog, see this in coreclr 3.1:
https://github.com/dotnet/coreclr/blob/v3.1.32/src/vm/excep.cpp#L8139-L8147.
The body of the loop was removed , but blame on github somehow isn't able to show me the change that did that.

This was deleted in
https://github.com/dotnet/runtime/pull/81927/files#diff-47cbfa47fb88845e5e76fd4df0a84e9da494508ffe80da116511fc2d0becd9baL7614

Deleting the rest #105346

@AaronRobinsonMSFT
Copy link
Member Author

Maybe @janvorli has better idea what is different here.

I tried to debug this and it is mostly related to the SEH simulation on non-Windows. Particularly usage of NativeExceptionHolderBase.

@AaronRobinsonMSFT AaronRobinsonMSFT merged commit 1fd54b6 into dotnet:main Jul 23, 2024
90 checks passed
@AaronRobinsonMSFT AaronRobinsonMSFT deleted the runtime_105186 branch July 23, 2024 22:48
@github-actions github-actions bot locked and limited conversation to collaborators Aug 23, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
4 participants