fsprojects / Paket

A dependency manager for .NET with support for NuGet packages and Git repositories.
https://fsprojects.github.io/Paket/
MIT License
1.99k stars 520 forks source link

concurrent package restores sometimes fail #4240

Open jcmrva opened 5 months ago

jcmrva commented 5 months ago

Description

We have a bunch of test projects and our CI process runs them in parallel so the test portion doesn't take 20 minutes to complete.

dotnet test << parameters.project >> /p:CollectCoverage=true /p:CoverletOutput='../coverage/' /p:Exclude="[*.Test]*" /p:CoverletOutputFormat="lcov" --logger "trx" -- Expecto.fail-on-focused-tests=true

Transient errors sometimes occur during paket restore. This appears to be the relevant part:

Download of FSharp.Core 7.0.300 done in 429 milliseconds. (52273 kbit/s, 2 MB) Something went wrong while downloading FSharp.Core 7.0.300 Message: The file '/root/.nuget/packages/fsharp.core/fsharp.core.7.0.300.nupkg' already exists. ==> Last trial Downloading FSharp.Core 7.0.300 Not moving as '/root/.nuget/packages/fsharp.core/7.0.300/fsharp.core.7.0.300.nupkg' already exists (maybe some other instance downloaded it as well) Download of FSharp.Core 7.0.300 done in 28 milliseconds. (826700 kbit/s, 2 MB)

No doubt we need to rework the pipeline so the test steps are all using the same build artifact, but could the file-exists check be used to prevent the unneeded retries?

This is Paket v7.2.1