-
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
dotnet run error Assert failure(PID 28188 [0x00006e1c], Thread: 26664 [0x6828]) in .net 9 #110000
Comments
Tagging subscribers to this area: @mangod9 |
@mammadkoma this looks related to CET. Are you able to reproduce the failure on different machines? Can you try to disable CET and check if the problem persists: https://learn.microsoft.com/en-us/dotnet/core/compatibility/interop/9.0/cet-support |
It runs after adding this line to the .csproj file : So why should I add this line for .net 9 ? |
are you able to share a repro? Is this a simple webapi project created with |
Yes I created by dotnet new webapi command. It has this problem in other project types for example blazor webapp. |
Also got user of my OSS app running into the same issue: JustArchiNET/ArchiSteamFarm#3348 Can't provide much more details on their environment, but the app definitely doesn't start now after .NET 9 upgrade.
|
@janvorli FYI. Can they provide details on the hardware they are running on. Also weird that the assert is showing up here. Any repro and/or dumps if available would be helpful to diagnose.
in .NET 9 CET compat-mode is enabled by default, so if the hardware is capable CET would be enabled. It appears there are specific cases where it isnt quite working right. |
This means that the Windows are out of date quite a lot and so they don't contain the fix for a bug in the kernel that prevents .NET to work with CET enabled. I believe the fix was released about a year ago. |
Can we possibly report a better error here? Not sure how the assert shows up on release builds? |
runtime/src/coreclr/vm/threads.cpp Line 7833 in 342936c
It's a release assert. |
We can replace that assert by a check and failfast with a message that will make more sense. |
yeah a better error with some details on required windows versions would be good for better clarity. |
CPU: i7 11800H
|
@wwh1004 so looks like you are running an older version of windows which doesnt support the required CET apis. |
@wwh1004 I've asked Windows kernel developers and they confirmed that the version of Windows you have doesn't have support for the feature .NET CET support depends on. It was added in an update in 2023. So you need to either disable CET for your app or update your Windows. |
This should probably be documented on the breaking change page, as .NET is still listed as being supported on these old Windows versions, and there's no indication that CET needs to be disabled in that scenario. |
Description
I create a web api .net 9 project, it builds but after running dotnet run command it shows error. I don't have any problem in .net 8 on Windows 10.
The commands in .net 9 :
PS D:\TestProjects\WebApi> dotnet build
Restore complete (0.2s)
WebApi succeeded (2.4s) → bin\Debug\net9.0\WebApi.dll
Build succeeded in 3.0s
PS D:\TestProjects\WebApi> dotnet run
Using launch settings from D:\TestProjects\WebApi\Properties\launchSettings.json...
Building...
CLR: Assert failure(PID 28188 [0x00006e1c], Thread: 26664 [0x6828]): !AreShadowStacksEnabled() || UseSpecialUserModeApc()
File: D:\a_work\1\s\src\coreclr\vm\threads.cpp:7938 Image:
D:\TestProjects\WebApi\bin\Debug\net9.0\WebApi.exe
PS D:\TestProjects\WebApi>
Reproduction Steps
create a web api in .net 9
Expected behavior
running the project
Actual behavior
getting error
Regression?
No response
Known Workarounds
No response
Configuration
No response
Other information
No response
The text was updated successfully, but these errors were encountered: