You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
R2R test failure: failed to crossgen Microsoft.Extensions.Options.ConfigurationExtensions.dll #33760
Why are these even being crossgen'ed they aren't part of the base shared framework.
Here's the error:
Precompiling /__w/1/s/artifacts/tests/coreclr/Linux.arm.Checked/Tests/Core_Root/Microsoft.Extensions.Options.DataAnnotations.dll
Unable to precompile /__w/1/s/artifacts/tests/coreclr/Linux.arm.Checked/Tests/Core_Root/Microsoft.Extensions.Options.DataAnnotations.dll, exit code is 33.
Command-line: /__w/1/s/artifacts/bin/coreclr/Linux.arm.Checked/x64/crossgen /Platform_Assemblies_Paths /__w/1/s/artifacts/tests/coreclr/Linux.arm.Checked/Tests/Core_Root /__w/1/s/artifacts/tests/coreclr/Linux.arm.Checked/Tests/Core_Root/Microsoft.Extensions.Options.DataAnnotations.dll
Microsoft (R) CoreCLR Native Image Generator - Version 4.5.30319.0
Copyright (c) Microsoft Corporation. All rights reserved.
Error: Could not load file or assembly 'Microsoft.Extensions.Options, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.
(0x80070002 (COR_E_FILENOTFOUND))
Looks to me like CrossGen isn't being passed the path for all dependencies.
@BruceForstall do you really want to be crossgen'ing these things that aren't part of the base product? Is it just to get some test coverage of additional NuGet packages?
Looks like build-test.cmd and build-test.sh blindly crossgen all the assemblies in CORE_ROOT with the pattern System.*.dll or Microsoft.*.dll, with a few hard-coded exceptions. This is part of test legs that also crossgen each individual test before running it.
There are two goals: (1) make sure crossgen is successful (no asserts/crashes) across many assets, (2) make sure tests run successfully with everything crossgen'ed.
I've added the requirement of the crossgening of the assemblies in CORE_ROOT to succeed few months ago since we were silently failing to crossgen some of them when running coreclr crossgen tests due to bugs in crossgen / crossgen2 and we have never realized that.
I believe that today the easiest way forward is to add manual exclusions for those assemblies that are known to crash compilation. I can prepare a PR fixing that.
We're already fixing this, no need to disable. I was continuing the discussion around this testing because I wasn't sure it was intentional that you want to run crossgen on every assembly that we build.
Activity
BruceForstall commentedon Mar 19, 2020
@sandreenko You saw this yesterday
@dotnet/runtime-infrastructure
safern commentedon Mar 19, 2020
These are new assemblies. I wonder if they're missing something, or if they are somehow special. cc: @ericstj @maryamariyan
ericstj commentedon Mar 19, 2020
Why are these even being crossgen'ed they aren't part of the base shared framework.
Here's the error:
Looks to me like CrossGen isn't being passed the path for all dependencies.
ericstj commentedon Mar 19, 2020
Ok, the reason for this failure is because Options isn't being built:
runtime/src/libraries/Directory.Build.props
Line 19 in f80a514
I think that
Options.*will not findOptions\maryamariyan commentedon Mar 19, 2020
Please refer to #33563 description.
Enabling DI.tests enables DI and in turn that enables Options, and that should unblock this issue.
Here's my PR: #33816
ericstj commentedon Mar 19, 2020
Thanks for catching this @maryamariyan .
@BruceForstall do you really want to be crossgen'ing these things that aren't part of the base product? Is it just to get some test coverage of additional NuGet packages?
BruceForstall commentedon Mar 19, 2020
Looks like
build-test.cmdandbuild-test.shblindly crossgen all the assemblies inCORE_ROOTwith the patternSystem.*.dllorMicrosoft.*.dll, with a few hard-coded exceptions. This is part of test legs that also crossgen each individual test before running it.There are two goals: (1) make sure crossgen is successful (no asserts/crashes) across many assets, (2) make sure tests run successfully with everything crossgen'ed.
janvorli commentedon Mar 19, 2020
I've added the requirement of the crossgening of the assemblies in CORE_ROOT to succeed few months ago since we were silently failing to crossgen some of them when running coreclr crossgen tests due to bugs in crossgen / crossgen2 and we have never realized that.
ericstj commentedon Mar 20, 2020
I guess this will get better when we stop putting packages in the test shared framework.
BruceForstall commentedon Mar 20, 2020
We need a solution so this job succeeds. Do we need to add some assemblies to an exclusion list?
trylek commentedon Mar 20, 2020
I believe that today the easiest way forward is to add manual exclusions for those assemblies that are known to crash compilation. I can prepare a PR fixing that.
ericstj commentedon Mar 20, 2020
We're already fixing this, no need to disable. I was continuing the discussion around this testing because I wasn't sure it was intentional that you want to run crossgen on every assembly that we build.
maryamariyan commentedon Mar 24, 2020
This issue should now be fixed as of #33816
ericstj commentedon Mar 24, 2020
Last night's build passed. https://dev.azure.com/dnceng/public/_build/results?buildId=570650