dotnet / dotnet/runtime

[ci-scan] Build break: Mono MiniFullAOT fails on JIT.Generics - Recursive type definition detected (self-recursive generic stati [Content truncated due to length]

Open
#133,009 2 comments 0 reactions 0 assignees View on GitHub
agentic-workflows area-VM-meta-mono blocking-clean-ci Known Build Error
Dominant language
C#
Stars
18.3k
Forks
5.6k
PR merge metrics
PR metrics pending

Description

## Build Information
Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1574376
Build error leg or test failing: linux-x64 Release AllSubsets_Mono_MiniFullAot_RuntimeTests (minifullaot) — Mono AOT of `JIT/Generics/JIT.Generics.dll`

Pipeline: `runtime-extra-platforms` (definition 154), branch `main`. The Mono MiniFullAOT precompilation step (`src/mono/msbuild/aot-compile.proj`) fails compiling `JIT.Generics.dll`: Mono's type loader reports `Recursive type definition detected` for the self-recursive generic types in `JitTest_Generics_Coverage_chaos65204782cs` (e.g. `A0A1\`1`, `A0A0A0\`1`), with `Field '_sfA00' is an invalid generic instantiation`. Hundreds of methodspecs fail to load, and `aot-compile.proj` fails with `MSB3077 ... ExitCode was set to -1`, breaking the whole leg. This is a build break — no tests run. Reproduces across source build 1574376 and follow-up build 1575978 (768 occurrences of the signature in the follow-up leg log).

This is the CI manifestation of the Mono self-recursive-static-field limitation tracked in dotnet/runtime#118472 (`area-VM-meta-mono`), surfaced here by the JIT.Generics chaos coverage assembly rather than the `SelfReferentialStatics` test. `Related: dotnet/runtime#118472`.

## Error Details

```
EXEC : Failed to load methodspec 0x2b000074 due to Could not find method 'VerifyA0A0A0NotInlinedGenericStatic' due to a type load error : ... Field '_sfA00' is an invalid generic instantiation of type JitTest_Generics_Coverage_chaos65204782cs.A0A1A2`1[...] ... [/__w/1/s/src/mono/msbuild/aot-compile.proj]

/__w/1/s/src/mono/msbuild/aot-compile.proj(19,9): error MSB3077: The command "... corerun ... JIT.Generics.dll" exited with return value 0, but errors were detected during execution. ExitCode was set to -1.
Build FAILED.
```

## Error Message

```json
{
"ErrorMessage": [
"aot-compile.proj",
"Recursive type definition detected JitTest_Generics_Coverage_chaos",
"JIT.Generics.dll"
],
"ErrorPattern": "",
"BuildRetry": false,
"ExcludeConsoleLog": false
}
```

Agentic workflow metadata (ci-failure-scan)

Workflow artifact: ci-failure-scan
Artifact kind: kbe-verification
Verified match count: 768 hits in failure.log

## First build it occurred
Source build [1574376](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1574376); reproduces in follow-up build [1575978](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1575978). Fails on the linux-x64 Mono MiniFullAOT RuntimeTests leg.

## Duplicate search
Searched open/closed `Known Build Error` issues for `Recursive type definition detected`, `JIT.Generics`, `aot-compile.proj`, and Mono AOT generics failures. dotnet/runtime#118472 is a product tracker (`area-VM-meta-mono`) for the same underlying self-recursive-static limitation but is not a `Known Build Error` and cites a different test (`SelfReferentialStatics`). No open `Known Build Error` tracks this JIT.Generics MiniFullAOT build break, so filing one for Build Analysis to match; cross-linked to #118472.

---
Filed by [`ci-failure-scan`](https://github.com/dotnet/runtime/blob/main/.github/workflows/ci-failure-scan.md) (detection only). [`ci-failure-fix`](https://github.com/dotnet/runtime/blob/main/.github/workflows/ci-failure-fix.md) walks open `[ci-scan]` KBEs and either opens a small fix PR or comments to loop in owners — it never disables the test.

> [!NOTE]
> Generated by the CI Outer-Loop Failure Scanner agentic workflow.

> Generated by [CI Outer-Loop Failure Scanner](https://github.com/dotnet/runtime/actions/runs/33509302092) · opus48 · 776.4 AIC · ⌖ 16.1 AIC · ⊞ 20.7K · [◷](https://github.com/search?q=repo%3Adotnet%2Fruntime+is%3Aissue+%22gh-aw-workflow-call-id%3A+dotnet%2Fruntime%2Fci-failure-scan%22&type=issues)

### Report
|Build|Repository|Step Name|Console log|Pull Request|
|---|---|---|---|---|
|[1582624](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1582624)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1582624/logs/89)||
|[1582425](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1582425)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1582425/logs/110)|dotnet/runtime#132744|
|[1582322](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1582322)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1582322/logs/486)||
|[1581950](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1581950)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1581950/logs/110)|dotnet/runtime#130050|
|[1581745](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1581745)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1581745/logs/89)||
|[1580442](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1580442)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1580442/logs/89)||
|[1580178](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1580178)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1580178/logs/380)||
|[1579525](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1579525)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1579525/logs/89)||
|[1579435](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1579435)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1579435/logs/110)|dotnet/runtime#130050|
|[1578220](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1578220)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1578220/logs/89)||
|[1578169](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1578169)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1578169/logs/110)|dotnet/runtime#133011|
|[1578114](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1578114)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1578114/logs/110)|dotnet/runtime#130050|
|[1578024](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1578024)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1578024/logs/469)||
|[1577512](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1577512)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1577512/logs/89)||
|[1576725](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1576725)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1576725/logs/110)|dotnet/runtime#133011|
|[1576204](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1576204)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1576204/logs/89)||
#### Summary
|24-Hour Hit Count|7-Day Hit Count|1-Month Count|
|---|---|---|
|0|0|16|

Contributor guide

Open the contributing guide

Research direction

Start with src/mono/msbuild/aot-compile.proj and the linux-x64 Release AllSubsets_Mono_MiniFullAot_RuntimeTests leg, then compare the failure with dotnet/runtime#118472. Reproduce the JIT.Generics.dll AOT compilation failure and determine a fix for the recursive generic static-field limitation; done means the MiniFullAOT leg completes without the type-loader errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system, compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.