Skip to content

Intermittent !AreCetShadowStacksEnabled() || UseSpecialUserModeApc() assertion when embedding CoreCLR #83437

@alexrp

Description

@alexrp

Description

Example failure: https://github.com/vezel-dev/ruptura/actions/runs/4422936308/jobs/7755195387

The TL;DR of this project is that it links a native C DLL with libnethost.lib and injects it into a process (in this case, conhost.exe). The injected DLL then loads CoreCLR and runs user code.

Reproduction Steps

It's not going to be easy to create an isolated repro for this one, I think. Here's how to run the failing sample:

git clone git@github.com:vezel-dev/ruptura.git
cd ruptura
dotnet example attach

(Note that the failure is intermittent.)

Expected behavior

The sample should run successfully.

Actual behavior

CLR: Assert failure(PID 532 [0x00000214], Thread: 5628 [0x15fc]): !AreCetShadowStacksEnabled() || UseSpecialUserModeApc()
    File: D:\a\_work\1\s\src\coreclr\vm\threads.cpp, Line: 8308 Image:
C:\Windows\SYSTEM32\conhost.exe

Regression?

I think it's a regression.

It started happening around the time I upgraded from .NET SDK version 7.0.200 to 7.0.201 and from runtime.win-x64.Microsoft.NETCore.DotNetAppHost version 7.0.2 to 7.0.3.

Known Workarounds

No response

Configuration

Windows x64

Other information

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions