Skip to content
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

Official build fails due to missing windows_arm job #86073

Closed
sbomer opened this issue May 10, 2023 · 16 comments · Fixed by #86074 or #86138
Closed

Official build fails due to missing windows_arm job #86073

sbomer opened this issue May 10, 2023 · 16 comments · Fixed by #86074 or #86138

Comments

@sbomer
Copy link
Member

sbomer commented May 10, 2023

Official builds have started failing with:

workloadsbuild depends on unknown job installer__coreclr__windows_arm_Release_.

See for example https://dev.azure.com/dnceng/internal/_build/results?buildId=2178029&view=results. I believe caused by #85947. @BruceForstall

Probably we need to at least remove the arm dependencies from

- installer__coreclr__windows_arm_Release_
and
IntermediateArtifacts/windows_arm/Shipping/Microsoft.NETCore.App.Runtime.win-arm*.nupkg

@dotnet-issue-labeler dotnet-issue-labeler bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label May 10, 2023
@ghost ghost added the untriaged New issue has not been triaged by the area owner label May 10, 2023
@sbomer
Copy link
Member Author

sbomer commented May 10, 2023

windows_arm was added to the workloads build in https://github.com/dotnet/runtime/pull/68981/files. Probably they should also be removed from the WorkloadManifest.json.in.

@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label May 10, 2023
@BruceForstall BruceForstall self-assigned this May 10, 2023
@BruceForstall BruceForstall added area-Infrastructure-coreclr blocking-official-build and removed untriaged New issue has not been triaged by the area owner needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels May 10, 2023
@BruceForstall BruceForstall added this to the 8.0.0 milestone May 10, 2023
@ghost
Copy link

ghost commented May 10, 2023

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

Issue Details

Official builds have started failing with:

workloadsbuild depends on unknown job installer__coreclr__windows_arm_Release_.

See for example https://dev.azure.com/dnceng/internal/_build/results?buildId=2178029&view=results. I believe caused by #85947. @BruceForstall

Probably we need to at least remove the arm dependencies from

- installer__coreclr__windows_arm_Release_
and
IntermediateArtifacts/windows_arm/Shipping/Microsoft.NETCore.App.Runtime.win-arm*.nupkg

Author: sbomer
Assignees: BruceForstall
Labels:

area-Infrastructure-coreclr, untriaged, in-pr, needs-area-label

Milestone: -

@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label May 11, 2023
@BruceForstall BruceForstall reopened this May 11, 2023
@BruceForstall
Copy link
Member

Looks like the official build is failing in the Build crossdac publishing step:

D:\a\_work\1\s\.packages\microsoft.dotnet.build.tasks.packaging\8.0.0-beta.23259.5\build\Packaging.targets(1264,5): error : Error when creating nuget lib package from D:\a\_work\1\s\artifacts\packages\Release\specs\runtime.linux-musl-arm.Microsoft.CrossOsDiag.Private.CoreCLR.nuspec. NuGet.Packaging.Core.PackagingException: File not found: 'D:\a\_work\1\s\artifacts\CoreCLRCrossDacArtifacts\CoreCLRCrossDacArtifacts\linux_musl.arm.Release\x86\mscordaccore.pdb'. [D:\a\_work\1\s\src\coreclr\.nuget\Microsoft.CrossOsDiag.Private.CoreCLR\Microsoft.CrossOsDiag.Private.CoreCLR.pkgproj]
D:\a\_work\1\s\.packages\microsoft.dotnet.build.tasks.packaging\8.0.0-beta.23259.5\build\Packaging.targets(1264,5): error :    at NuGet.Packaging.PackageBuilder.AddFiles(String basePath, String source, String destination, String exclude) [D:\a\_work\1\s\src\coreclr\.nuget\Microsoft.CrossOsDiag.Private.CoreCLR\Microsoft.CrossOsDiag.Private.CoreCLR.pkgproj]
D:\a\_work\1\s\.packages\microsoft.dotnet.build.tasks.packaging\8.0.0-beta.23259.5\build\Packaging.targets(1264,5): error :    at NuGet.Packaging.PackageBuilder.PopulateFiles(String basePath, IEnumerable`1 files) [D:\a\_work\1\s\src\coreclr\.nuget\Microsoft.CrossOsDiag.Private.CoreCLR\Microsoft.CrossOsDiag.Private.CoreCLR.pkgproj]
D:\a\_work\1\s\.packages\microsoft.dotnet.build.tasks.packaging\8.0.0-beta.23259.5\build\Packaging.targets(1264,5): error :    at Microsoft.DotNet.Build.Tasks.Packaging.NuGetPack.Pack(String nuspecPath, String nupkgPath, Manifest manifest, Boolean packSymbols) in /_/src/Microsoft.DotNet.Build.Tasks.Packaging/src/NuGetPack.cs:line 261 [D:\a\_work\1\s\src\coreclr\.nuget\Microsoft.CrossOsDiag.Private.CoreCLR\Microsoft.CrossOsDiag.Private.CoreCLR.pkgproj]
D:\a\_work\1\s\.packages\microsoft.dotnet.build.tasks.packaging\8.0.0-beta.23259.5\build\Packaging.targets(1264,5): error : Error when creating nuget lib package from D:\a\_work\1\s\artifacts\packages\Release\specs\runtime.linux-arm.Microsoft.CrossOsDiag.Private.CoreCLR.nuspec. NuGet.Packaging.Core.PackagingException: File not found: 'D:\a\_work\1\s\artifacts\CoreCLRCrossDacArtifacts\CoreCLRCrossDacArtifacts\linux.arm.Release\x86\mscordaccore.pdb'. [D:\a\_work\1\s\src\coreclr\.nuget\Microsoft.CrossOsDiag.Private.CoreCLR\Microsoft.CrossOsDiag.Private.CoreCLR.pkgproj]
D:\a\_work\1\s\.packages\microsoft.dotnet.build.tasks.packaging\8.0.0-beta.23259.5\build\Packaging.targets(1264,5): error :    at NuGet.Packaging.PackageBuilder.AddFiles(String basePath, String source, String destination, String exclude) [D:\a\_work\1\s\src\coreclr\.nuget\Microsoft.CrossOsDiag.Private.CoreCLR\Microsoft.CrossOsDiag.Private.CoreCLR.pkgproj]
D:\a\_work\1\s\.packages\microsoft.dotnet.build.tasks.packaging\8.0.0-beta.23259.5\build\Packaging.targets(1264,5): error :    at NuGet.Packaging.PackageBuilder.PopulateFiles(String basePath, IEnumerable`1 files) [D:\a\_work\1\s\src\coreclr\.nuget\Microsoft.CrossOsDiag.Private.CoreCLR\Microsoft.CrossOsDiag.Private.CoreCLR.pkgproj]
D:\a\_work\1\s\.packages\microsoft.dotnet.build.tasks.packaging\8.0.0-beta.23259.5\build\Packaging.targets(1264,5): error :    at Microsoft.DotNet.Build.Tasks.Packaging.NuGetPack.Pack(String nuspecPath, String nupkgPath, Manifest manifest, Boolean packSymbols) in /_/src/Microsoft.DotNet.Build.Tasks.Packaging/src/NuGetPack.cs:line 261 [D:\a\_work\1\s\src\coreclr\.nuget\Microsoft.CrossOsDiag.Private.CoreCLR\Microsoft.CrossOsDiag.Private.CoreCLR.pkgproj]
##[error].packages\microsoft.dotnet.build.tasks.packaging\8.0.0-beta.23259.5\build\Packaging.targets(1264,5): error : (NETCORE_ENGINEERING_TELEMETRY=Build) Error when creating nuget lib package from D:\a\_work\1\s\artifacts\packages\Release\specs\runtime.linux-musl-arm.Microsoft.CrossOsDiag.Private.CoreCLR.nuspec. NuGet.Packaging.Core.PackagingException: File not found: 'D:\a\_work\1\s\artifacts\CoreCLRCrossDacArtifacts\CoreCLRCrossDacArtifacts\linux_musl.arm.Release\x86\mscordaccore.pdb'.

@sbomer @jkotas @jkoritzinsky Anyone know how this works? @jkotas Maybe the linux-arm cross-dac build was inadvertently removed?

@jkoritzinsky
Copy link
Member

I think we built the Linux arm crossdac components on the Windows arm leg. We can either add the commands to just build it to the crossdac job directly or bring back the build jobs just for the cross-dac builds. Either option should work.

@BruceForstall
Copy link
Member

@noahfalk @tommcdon @mikem8361 Is the linux arm crossdac owned by you? We've been removing Windows arm (builds and code) and it appears linux-arm crossdac builds were a casualty. How do we bring it back without bringing back Windows arm builds?

@mikem8361
Copy link
Member

@hoyosjs would know how.

@hoyosjs
Copy link
Member

hoyosjs commented May 11, 2023

The linux crossbuild was done from the arm leg as the crosscomponents built the x86 -> arm DAC and DBI. Maybe we could fold that into the x86 leg (Do we have a windows jit targetting linux-arm? Is it built there?).

@BruceForstall
Copy link
Member

BruceForstall commented May 11, 2023

(Do we have a windows jit targetting linux-arm? Is it built there?)

The win-x86 build creates clrjit_universal_arm_x86.dll, which is a JIT that runs on win-x86 and targets any arm32 OS.

The win-x64 build creates clrjit_universal_arm_x64.dll, which is a JIT that runs on win-x64 and targets any arm32 OS.

(Note these are intended to be used when running crossgen2)

@hoyosjs
Copy link
Member

hoyosjs commented May 11, 2023

We don't support win-arm targeting linux-arm, so folding the arm crossdac to the linux build is completely OK to me.

@BruceForstall
Copy link
Member

Where and how is that build done? What needs to change?

@ericstj
Copy link
Member

ericstj commented May 12, 2023

@hoyosjs is the expert, but it might be here:

- script: $(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) ${{ parameters.archType }} -hostarch ${{ parameters.hostArchType }} -ci -os linux -cmakeargs "-DCLR_CROSS_COMPONENTS_BUILD=1" -ninja $(officialBuildIdArg) -component crosscomponents
displayName: Build Cross OS Linux DAC for Windows
- script: $(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) ${{ parameters.archType }} -hostarch ${{ parameters.hostArchType }} -ci -os alpine -cmakeargs "-DCLR_CROSS_COMPONENTS_BUILD=1" -ninja $(officialBuildIdArg) -component crosscomponents
displayName: Build Cross OS Linux-musl DAC for Windows

Looks like that's invoked once for the same archType as the outer build. Maybe we need to add an additional call for whatever arch we want to use to add the arm build to? Probably lower on down needs a an update to the copy step in that case too.

Or maybe it's easier to just do it in the caller:

- template: /eng/pipelines/coreclr/templates/crossdac-build.yml
parameters:
archType: ${{ parameters.archType }}
osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }}
isOfficialBuild: ${{ parameters.signBinaries }}
${{ if eq(parameters.archType, 'arm') }}:
hostArchType: x86
${{ else }}:
hostArchType: x64

@BruceForstall
Copy link
Member

I'm inclined to revert #85947, #86074, #86065 to fix the build.

My goal was to stop running tests in the CI on win-arm; I don't want to spend time pulling all the threads to completely remove win-arm support across all repos.

@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label May 12, 2023
jkotas added a commit to jkotas/runtime that referenced this issue May 12, 2023
Revert changes that broke build of the cross DAC linux-arm components

Fixes dotnet#86073
@jkotas
Copy link
Member

jkotas commented May 12, 2023

#86138 should fix the official build

jkotas added a commit that referenced this issue May 12, 2023
* Fix official build of cross DAC components

Revert changes that broke build of the cross DAC linux-arm components

Fixes #86073

Co-authored-by: Juan Hoyos <19413848+hoyosjs@users.noreply.github.com>
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label May 12, 2023
@BruceForstall
Copy link
Member

Hopefully there aren't upstream repos (installer? sdk?) that still expect to consume win-arm bits from runtime.

@jkotas
Copy link
Member

jkotas commented May 12, 2023

We got a green official build an hour ago

@ericstj
Copy link
Member

ericstj commented May 12, 2023

Hopefully there aren't upstream repos (installer? sdk?) that still expect to consume win-arm bits from runtime.

That's probably a good thing to check before bringing this change back. You can also trigger an official build for this change by pushing it to AzDo and scheduling there.

@ghost ghost locked as resolved and limited conversation to collaborators Jun 12, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.