fsprojects / fsprojects/Paket

[bootstrapper] Improve handling of invalid hash

Open
#2,725 12 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

boostrapper bug crash resilience up-for-grabs
Dominant language
F#
Stars
2.1k
Forks
528
Avg merge
1d 12m
Merged PRs (30d)
54

Description

Description

I receive a

The file 'C:\Windows\system32\config\systemprofile\AppData\Local\NuGet\Cache\Paket\5.92.3\paket.exe' already exists. 

error when calling "paket.exe restore" having bumped the version to 5.92.3.

Have never seen this before. It goes away on a brand new build agent (they're automated), but comes back again.

Repro steps

Not yet able to reproduce. Known aspects:

  • Occurs when calling paket.exe restore
  • Most branches on build server running on 5.85.1 with paket.exe in magic mode, with version passed as argument.
  • New branch on build server running 5.92.3 with paket.exe in magic mode, with version passed in paket.dependencies.
  • Build servers rebuilt from scratch each day, and happened two days running so far.
  • Works successfully on first run of the day.
  • Subsequent builds of branch fail on that build server. Not sure if there is interaction with other builds going on here.
  • Happened once on local machine but haven't been able to reproduce since after clearing cache folder.
Expected behavior

paket.exe restores packages as in previous versions.

Actual behavior

The file 'C:\Windows\system32\config\systemprofile\AppData\Local\NuGet\Cache\Paket\5.92.3\paket.exe' already exists.

Packages are then not restored.

Known workarounds

Kill the build server and force a fresh instance.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the bootstrapper path used by paket.exe restore and investigate how it handles an existing cached executable at the reported Paket version. Reproduce the failure with repeated builds or cache reuse if possible; done means restore succeeds without requiring the build server to be rebuilt.

Written by the indexing model from the issue text.

Assessment

Tech stack
fsharp
Domain
build-system, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.