Skip to content

[perf] Dotnet restore unable to find 8.0.0-rc.* packages #3164

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

Closed
kotlarmilos opened this issue Jul 26, 2023 · 23 comments · Fixed by #3175
Closed

[perf] Dotnet restore unable to find 8.0.0-rc.* packages #3164

kotlarmilos opened this issue Jul 26, 2023 · 23 comments · Fixed by #3175
Labels
bug Something isn't working pipeline blocker issue blocks perf pipeline stays green. This be considered high priority.

Comments

@kotlarmilos
Copy link
Member

kotlarmilos commented Jul 26, 2023

Description

The perf jobs failed to restore MicroBenchmarks.csproj.

+ python3 /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/scripts/benchmarks_ci.py --csproj /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj --incremental no --architecture x64 -f net8.0 --upload-to-perflab-container --dotnet-versions 8.0.100-rc.1.23375.8 --cli-source-info args --cli-branch refs/heads/main --cli-commit-sha 764f77412ef4ec1a7e5dc521608247487a66cd7e --cli-repository https://github.com/dotnet/runtime --cli-source-timestamp 2023-07-25T19:04:35Z --bdn-artifacts /home/helixbot/work/AAE30989/w/C7D30A73/e/artifacts/BenchmarkDotNet.Artifacts --bdn-arguments=--anyCategories Libraries Runtime  --category-exclusion-filter NoAOT NoWASM --runtimes monoaotllvm --aotcompilerpath /home/helixbot/work/AAE30989/p/monoaot/sgen/mini/mono-sgen --customruntimepack /home/helixbot/work/AAE30989/p/monoaot/pack --aotcompilermode llvm --logBuildOutput --generateBinLog  --partition-count 30 --partition-index 1
----------------------------------------------
Initializing logger 2023-07-25 17:20:58.395098
----------------------------------------------
Installing tools.
----------------------
Downloading DotNet Cli
----------------------
DotNet Install Path: '/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/tools/dotnet/x64'
Downloading https://dot.net/v1/dotnet-install.sh
Downloaded https://dot.net/v1/dotnet-install.sh OK
$ pushd "/home/helixbot/work/AAE30989/w/C7D30A73/e/performance"
$ /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/tools/dotnet/x64/dotnet-install.sh -InstallDir /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/tools/dotnet/x64 -Architecture x64 -Version 8.0.100-rc.1.23375.8
dotnet-install: Attempting to download using primary link https://dotnetcli.azureedge.net/dotnet/Sdk/8.0.100-rc.1.23375.8/dotnet-sdk-8.0.100-rc.1.23375.8-linux-x64.tar.gz
curl: (22) The requested URL returned error: 404
dotnet-install: The resource at primary link 'https://dotnetcli.azureedge.net/dotnet/Sdk/8.0.100-rc.1.23375.8/dotnet-sdk-8.0.100-rc.1.23375.8-linux-x64.tar.gz' is not available.
dotnet-install: Attempting to download using legacy link https://dotnetcli.azureedge.net/dotnet/Sdk/8.0.100-rc.1.23375.8/dotnet-dev-ubuntu.18.04-x64.8.0.100-rc.1.23375.8.tar.gz
curl: (22) The requested URL returned error: 404
dotnet-install: The resource at legacy link 'https://dotnetcli.azureedge.net/dotnet/Sdk/8.0.100-rc.1.23375.8/dotnet-dev-ubuntu.18.04-x64.8.0.100-rc.1.23375.8.tar.gz' is not available.
dotnet-install: Attempting to download using primary link https://dotnetbuilds.azureedge.net/public/Sdk/8.0.100-rc.1.23375.8/dotnet-sdk-8.0.100-rc.1.23375.8-linux-x64.tar.gz
dotnet-install: Extracting zip from https://dotnetbuilds.azureedge.net/public/Sdk/8.0.100-rc.1.23375.8/dotnet-sdk-8.0.100-rc.1.23375.8-linux-x64.tar.gz
dotnet-install: Installed version is 8.0.100-rc.1.23375.8
dotnet-install: Adding to current process PATH: `/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/tools/dotnet/x64`. Note: This change will be visible only when sourcing script.
dotnet-install: Note that the script does not resolve dependencies during installation.
dotnet-install: To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install, select your operating system and check the "Dependencies" section.
dotnet-install: Installation finished successfully.
$ popd
$ dotnet --info
.NET SDK:
 Version:   8.0.100-rc.1.23375.8
 Commit:    5b3022c008

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  18.04
 OS Platform: Linux
 RID:         ubuntu.18.04-x64
 Base Path:   /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/tools/dotnet/x64/sdk/8.0.100-rc.1.23375.8/

.NET workloads installed:
There are no installed workloads to display.

Host:
  Version:      8.0.0-rc.1.23375.1
  Architecture: x64
  Commit:       d1fc57ea18
  RID:          linux-x64

.NET SDKs installed:
  8.0.100-rc.1.23375.8 [/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/tools/dotnet/x64/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 8.0.0-rc.1.23374.14 [/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/tools/dotnet/x64/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 8.0.0-rc.1.23375.1 [/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/tools/dotnet/x64/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  DOTNET_ROOT       [/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/tools/dotnet/x64]

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download
---------------------------------------
Removing packages, bin and obj folders.
---------------------------------------
-------------------------------
Restoring .NET micro benchmarks
-------------------------------
$ pushd "/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro"
$ dotnet restore /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj --packages /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/artifacts/packages /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1
  Determining projects to restore...
  Restored /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/tools/Reporting/Reporting/Reporting.csproj (in 2.44 sec).
  Restored 

..

/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/harness/BenchmarkDotNet.Extensions/BenchmarkDotNet.Extensions.csproj (in 2.44 sec).
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102: Unable to find package System.Text.Json with version (>= 8.0.0-rc.1.23375.7)
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 2072 version(s) in dotnet6 [ Nearest version: 6.0.2-servicing.1.22101.5 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1560 version(s) in dotnet7 [ Nearest version: 7.0.0-rtm.22511.4 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1290 version(s) in dotnet8 [ Nearest version: 8.0.0-rc.1.23375.4 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 107 version(s) in dotnet-public [ Nearest version: 8.0.0-preview.6.23329.7 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 45 version(s) in dotnet3.1 [ Nearest version: 4.7.0-preview3.19561.8 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1 version(s) in dotnet-eng [ Nearest version: 5.0.0-alpha.1.19618.1 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in benchmark-dotnet-prerelease
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in dotnet-tools
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in dotnet3.1-transport
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102: Unable to find package System.Security.Cryptography.Xml with version (>= 8.0.0-rc.1.23375.7)
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 2069 version(s) in dotnet6 [ Nearest version: 6.0.2-mauipre.1.22102.15 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1560 version(s) in dotnet7 [ Nearest version: 7.0.0-rtm.22511.4 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1290 version(s) in dotnet8 [ Nearest version: 8.0.0-rc.1.23375.4 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 69 version(s) in dotnet-public [ Nearest version: 8.0.0-preview.6.23329.7 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 45 version(s) in dotnet3.1 [ Nearest version: 4.7.0-preview3.19561.8 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1 version(s) in dotnet-eng [ Nearest version: 5.0.0-alpha.1.19618.1 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in benchmark-dotnet-prerelease
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in dotnet-tools
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in dotnet3.1-transport
  Failed to restore /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj (in 2.82 sec).
$ popd
$ pushd "/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro"
$ dotnet restore /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj --packages /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/artifacts/packages /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1
  Determining projects to restore...
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102: Unable to find package System.Text.Json with version (>= 8.0.0-rc.1.23375.7)
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 2072 version(s) in dotnet6 [ Nearest version: 6.0.2-servicing.1.22101.5 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1560 version(s) in dotnet7 [ Nearest version: 7.0.0-rtm.22511.4 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1290 version(s) in dotnet8 [ Nearest version: 8.0.0-rc.1.23375.4 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 107 version(s) in dotnet-public [ Nearest version: 8.0.0-preview.6.23329.7 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 45 version(s) in dotnet3.1 [ Nearest version: 4.7.0-preview3.19561.8 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1 version(s) in dotnet-eng [ Nearest version: 5.0.0-alpha.1.19618.1 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in benchmark-dotnet-prerelease
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in dotnet-tools
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in dotnet3.1-transport
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102: Unable to find package System.Security.Cryptography.Xml with version (>= 8.0.0-rc.1.23375.7)
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 2069 version(s) in dotnet6 [ Nearest version: 6.0.2-mauipre.1.22102.15 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1560 version(s) in dotnet7 [ Nearest version: 7.0.0-rtm.22511.4 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1290 version(s) in dotnet8 [ Nearest version: 8.0.0-rc.1.23375.4 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 69 version(s) in dotnet-public [ Nearest version: 8.0.0-preview.6.23329.7 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 45 version(s) in dotnet3.1 [ Nearest version: 4.7.0-preview3.19561.8 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1 version(s) in dotnet-eng [ Nearest version: 5.0.0-alpha.1.19618.1 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in benchmark-dotnet-prerelease
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in dotnet-tools
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in dotnet3.1-transport
  Failed to restore /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj (in 1.59 sec).
  2 of 3 projects are up-to-date for restore.
$ popd
$ pushd "/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro"
$ dotnet restore /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj --packages /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/artifacts/packages /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1
  Determining projects to restore...
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102: Unable to find package System.Text.Json with version (>= 8.0.0-rc.1.23375.7)
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 2072 version(s) in dotnet6 [ Nearest version: 6.0.2-servicing.1.22101.5 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1560 version(s) in dotnet7 [ Nearest version: 7.0.0-rtm.22511.4 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1290 version(s) in dotnet8 [ Nearest version: 8.0.0-rc.1.23375.4 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 107 version(s) in dotnet-public [ Nearest version: 8.0.0-preview.6.23329.7 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 45 version(s) in dotnet3.1 [ Nearest version: 4.7.0-preview3.19561.8 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1 version(s) in dotnet-eng [ Nearest version: 5.0.0-alpha.1.19618.1 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in benchmark-dotnet-prerelease
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in dotnet-tools
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in dotnet3.1-transport
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102: Unable to find package System.Security.Cryptography.Xml with version (>= 8.0.0-rc.1.23375.7)
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 2069 version(s) in dotnet6 [ Nearest version: 6.0.2-mauipre.1.22102.15 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1560 version(s) in dotnet7 [ Nearest version: 7.0.0-rtm.22511.4 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1290 version(s) in dotnet8 [ Nearest version: 8.0.0-rc.1.23375.4 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 69 version(s) in dotnet-public [ Nearest version: 8.0.0-preview.6.23329.7 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 45 version(s) in dotnet3.1 [ Nearest version: 4.7.0-preview3.19561.8 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 1 version(s) in dotnet-eng [ Nearest version: 5.0.0-alpha.1.19618.1 ]
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in benchmark-dotnet-prerelease
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in dotnet-tools
/home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj : error NU1102:   - Found 0 version(s) in dotnet3.1-transport
  Failed to restore /home/helixbot/work/AAE30989/w/C7D30A73/e/performance/src/benchmarks/micro/MicroBenchmarks.csproj (in 1.71 sec).
  2 of 3 projects are up-to-date for restore.
$ popd
 Process exited with status 1

/cc: @LoopedBard3 @cincuranet @radical @LeVladIonescu @SamMonoRT

@kotlarmilos kotlarmilos added bug Something isn't working pipeline blocker issue blocks perf pipeline stays green. This be considered high priority. labels Jul 26, 2023
@radical
Copy link
Member

radical commented Jul 26, 2023

We have been seeing this in wasm too (dotnet/runtime#81222). It's because of

<When Condition="'$(TargetFramework)' == 'net8.0'">
<PropertyGroup>
<LangVersion>preview</LangVersion>
<ExtensionsVersion>8.0.*-*</ExtensionsVersion>
<SystemVersion>8.0.*-*</SystemVersion>
</PropertyGroup>
</When>

Somehow the version resolved for that wildcard is just slightly newer than the one available in the feed (dotnet8 in this case). (edit: It shouldn't happen often.) Maybe we need to open a nuget issue.

@kotlarmilos
Copy link
Member Author

kotlarmilos commented Jul 26, 2023

Thanks. I noticed that it has started occurring a couple of days ago. We didn't get perf coverage for the last week.

@radical Is the https://github.com/dotnet/arcade suitable place for submitting the issue?

@lewing
Copy link
Member

lewing commented Jul 26, 2023

Weird, this will coincide with the host version, not whatever version it is picking up (sdk?)

@radical
Copy link
Member

radical commented Jul 26, 2023

It shouldn't happen often.

Details: earlier we were seeing this only in blazor scenarios, which is where I had added a similar version string.
But now, we are seeing this everywhere because #3120 added <ExtensionsVersion>8.0.*-*</ExtensionsVersion> for MicroBenchmarks.csproj.

And with that change all the wasm perf runs are also broken.
cc @cincuranet

Edit: sometimes the wasm perf runs do pass, so it isn't deterministic.

@radical
Copy link
Member

radical commented Jul 26, 2023

dotnet/runtime#81222 is the issue I mentioned with blazor scenarios.

@lewing
Copy link
Member

lewing commented Jul 26, 2023

@dotnet/nuget-team is this a regression in nuget.client?

@radical
Copy link
Member

radical commented Jul 26, 2023

Could somebody from @dotnet/nuget-team please take a look at this? The issue seems to be around at least since ~Jan26 (dotnet/runtime#81222). Using a version string with wildcards causes the restore to race sometimes causing:

src/benchmarks/micro/MicroBenchmarks.csproj :   
error NU1102: Unable to find package System.Text.Json with version (>= 8.0.0-rc.1.23375.7)
error NU1102:   - Found 1290 version(s) in dotnet8 [ Nearest version: 8.0.0-rc.1.23375.4 ]

The version it is complaining about 8.0.0-rc.1.23375.7 is slightly newer than the latest version (8.0.0-rc.1.23375.4) it reports from the dotnet8 feed.

@lewing
Copy link
Member

lewing commented Jul 26, 2023

@ericstj any idea what is going wrong here?

@ericstj
Copy link
Member

ericstj commented Jul 26, 2023

My best guess is builds happening in the middle of a publish? Is it possible that NuGet finds a newer version for one package, but that package's dependencies haven't yet been published.

@aortiz-msft
Copy link

Hi folks. If you think there's a NuGet issue, please file an issue here: https://github.com/NuGet/Home/issues/new/choose. Gathering a binlog would probably be the best first step along with the feeds defined in NuGet.config.

@radical
Copy link
Member

radical commented Jul 26, 2023

We don't collect binlog for the restore step. I will open a PR to obtain that.

@radical
Copy link
Member

radical commented Jul 26, 2023

Update: #3167 - to get the binlog. Once, I have a binlog from a failing run, I'll open an issue for nuget.

@lewing
Copy link
Member

lewing commented Jul 26, 2023

Those look like transitive dependencies so I guess it could happen during publish of a runtime build, I wonder if we could list them explicitly?

@ericstj
Copy link
Member

ericstj commented Jul 27, 2023

Listing them all out could result in a downgrade instead. My recollection of * versions are that they have these rough edges. Can we make sure publish is transactional? @mmitche

radical added a commit to radical/performance that referenced this issue Jul 27, 2023
```
error NU1102: Unable to find package System.Text.Json with version (>= 8.0.0-rc.1.23375.7)
error NU1102:   - Found 1290 version(s) in dotnet8 [ Nearest version: 8.0.0-rc.1.23375.4 ]
error NU1102: Unable to find package System.Security.Cryptography.Xml with version (>= 8.0.0-rc.1.23375.7)
error NU1102:   - Found 1290 version(s) in dotnet8 [ Nearest version: 8.0.0-rc.1.23375.4 ]
```

Note the difference between the referenced version, and the one
available in the feed.

These packages are getting added as transitive references.

The hypothesis is that the direct package references have version string
as `8.0.*-*` which select the latest available version.
    - but those packages transitively reference others for whom the
      latest version might not have been published to nuget yet.

To work around this, we add explicit references to such packages, so
they can get the versions selected from the ones in the feed.

Issue: dotnet#3164
@lewing
Copy link
Member

lewing commented Jul 27, 2023

Listing them all out could result in a downgrade instead. My recollection of * versions are that they have these rough edges. Can we make sure publish is transactional? @mmitche

There is an open discussion about that somewhere and so far the answer has been no

@radical
Copy link
Member

radical commented Jul 27, 2023

Those look like transitive dependencies so I guess it could happen during publish of a runtime build, I wonder if we could list them explicitly?

#3168

@lewing
Copy link
Member

lewing commented Jul 27, 2023

dotnet/sdk#23820

@mmitche
Copy link
Member

mmitche commented Jul 27, 2023

I chatted with @DrewScoggins about this earlier.

Publish cannot be transactional, either on nuget.org or AzDO. It's an open ask for Nuget.org (mainly about staging packages for a release). In theory, you could parse the dependency graph and ensure that you publish all dependencies early enough, but it still wouldn't guarantee a coherent set of packages if you have a dependency on two leaves.

This is a pretty niche use case overall and it doesn't seem like a good idea to optimize for it, at least for daily builds. Either you alter the perf repo workflow to pick a coherent set based on live Maestro data, or you pin on a coherent version.

@zivkan
Copy link
Member

zivkan commented Jul 27, 2023

Having a look over this issue, it looks to me the current belief is that a package that was pushed has a dependency on a package version not yet pushed.

If it's useful, I can help someone from dnceng use the NuGet Client SDK to read nupkgs that are about to be pushed and find their dependencies. This way we can build a graph of package dependencies, and determine an order so that each package will only be pushed when its dependency is also pushed (is this a feature that nuget should have built-in, when pushing a bunch of packages?). However, this will obviously only work if all the packages are pushed from a single CI task.

I did something similar, but different, recently in NuGet.Client, to ensure the VS Extensibility packages we publish only use versions of the VS SDK that exists on nuget.org: https://github.com/NuGet/NuGet.Client/blob/dev/tools-local/ensure-nupkg-dependencies-on-source/Program.cs

@mmitche
Copy link
Member

mmitche commented Jul 27, 2023

@zivkan Agreed that you can parse the dependency graph, but it still won't guarantee a coherent set of dependencies. You can still end up with dependencies from two builds.

IMO the use of * versioning on live builds is not really a great practice.

@lewing
Copy link
Member

lewing commented Jul 27, 2023

This is a pretty niche use case overall and it doesn't seem like a good idea to optimize for it, at least for daily builds. Either you alter the perf repo workflow to pick a coherent set based on live Maestro data, or you pin on a coherent version.

I'm not sure I agree that is a niche case that the tooling for push/publish does not support a mechanism that allows restore for the same tool to succeed.

@lewing
Copy link
Member

lewing commented Jul 27, 2023

@zivkan Agreed that you can parse the dependency graph, but it still won't guarantee a coherent set of dependencies. You can still end up with dependencies from two builds.

IMO the use of * versioning on live builds is not really a great practice.

agreed, and given how the current code in performance works I'm even less sure that I was before about what code is being used where when analyzing the benchmark reports. If dotnet/performance is testing a runtime commit, the code used to compile the benchmark should be the system/extension assemblies from the commit not the latest ones in the feed. Is that the case?

@cincuranet cincuranet linked a pull request Jul 27, 2023 that will close this issue
@mmitche
Copy link
Member

mmitche commented Jul 27, 2023

This is a pretty niche use case overall and it doesn't seem like a good idea to optimize for it, at least for daily builds. Either you alter the perf repo workflow to pick a coherent set based on live Maestro data, or you pin on a coherent version.

I'm not sure I agree that is a niche case that the tooling for push/publish does not support a mechanism that allows restore for the same tool to succeed.

a real solution for this looks like a nuget staging area, because there's no way to ensure that a coherent set gets pushed simultaneously from the client's standpoint. This has been discussed, but there are no concrete plans.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working pipeline blocker issue blocks perf pipeline stays green. This be considered high priority.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants