pnpm: pnpm 8.9.0 broken for windows dev drivers (ReFS)

Verify latest release

  • I verified that the issue exists in the latest pnpm release

pnpm version

8.9.0

Which area(s) of pnpm are affected? (leave empty if unsure)

Store

Link to the code that reproduces this issue or a replay of the bug

No response

Reproduction steps

running pnpm i: (sometimes fails with below message)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Downloading registry.npmjs.org/firebase/10.4.0: 6,06 MB/6,06 MB, done
Downloading registry.npmjs.org/@firebase/firestore/4.2.0: 6,52 MB/6,52 MB, done
Downloading registry.npmjs.org/googleapis/126.0.1: 10,28 MB/10,28 MB, done
Downloading registry.npmjs.org/typescript/5.1.6: 7,15 MB/7,15 MB, done
Progress: resolved 1655, reused 0, downloaded 1573, added 1655, done
 ERR_PNPM_BAD_PACKAGE_JSON  D:\repos\teve-no\task4s\node_modules\.pnpm\webpack@5.88.2_esbuild@0.19.4\node_modules\webpack\package.json: Unexpected token '', ""... is not valid JSON while parsing '' in node_modules\.pnpm\webpack@5.88.2_esbuild@0.19.4\node_modules\webpack\package.json

if I get past error above, I can run pnpm store status: (it reports multiple changed packages)

PS D:\repos\teve-no\task4s> pnpm store status
 ERR_PNPM_MODIFIED_DEPENDENCY  Packages in the store have been mutated

These packages are modified:
registry.npmjs.org/@babel/helper-define-polyfill-provider/0.4.2(@babel/core@7.22.9)
registry.npmjs.org/@babel/helper-module-transforms/7.23.0(@babel/core@7.22.5)
registry.npmjs.org/@babel/helper-module-transforms/7.23.0(@babel/core@7.22.9)
registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.22.15(@babel/core@7.23.0)
registry.npmjs.org/@babel/plugin-syntax-class-properties/7.12.13(@babel/core@7.22.9)
registry.npmjs.org/@babel/plugin-syntax-import-assertions/7.22.5(@babel/core@7.23.0)
registry.npmjs.org/@babel/plugin-transform-class-static-block/7.22.11(@babel/core@7.23.0)
registry.npmjs.org/@babel/plugin-transform-classes/7.22.15(@babel/core@7.23.0)
registry.npmjs.org/@babel/plugin-transform-computed-properties/7.22.5(@babel/core@7.22.9)
registry.npmjs.org/@babel/plugin-transform-modules-commonjs/7.23.0(@babel/core@7.22.9)
registry.npmjs.org/@babel/plugin-transform-modules-commonjs/7.23.0(@babel/core@7.23.0)
registry.npmjs.org/@babel/plugin-transform-modules-systemjs/7.23.0(@babel/core@7.23.0)
registry.npmjs.org/@babel/plugin-transform-new-target/7.22.5(@babel/core@7.23.0)
registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/7.22.11(@babel/core@7.22.9)
registry.npmjs.org/@babel/plugin-transform-numeric-separator/7.22.11(@babel/core@7.23.0)
registry.npmjs.org/@babel/plugin-transform-regenerator/7.22.10(@babel/core@7.23.0)
registry.npmjs.org/@babel/plugin-transform-reserved-words/7.22.5(@babel/core@7.23.0)
registry.npmjs.org/@babel/plugin-transform-typeof-symbol/7.22.5(@babel/core@7.23.0)
registry.npmjs.org/css-tree/2.2.1
registry.npmjs.org/css-tree/2.3.1
registry.npmjs.org/mdn-data/2.0.30
registry.npmjs.org/terser-webpack-plugin/5.3.9(esbuild@0.19.4)(webpack@5.88.2)
registry.npmjs.org/webpack/5.88.2(esbuild@0.18.17)
registry.npmjs.org/webpack/5.88.2(esbuild@0.19.4)

if I run pnpm store prune it also clears all packages in store (like there is no ref)

Describe the Bug

The performance improvements introduced for Windows Dev Drives in 8.9.0 seems to have broken it. It works fine on dev drives with 8.8.0, but I get multiple errors as described in the Repro steps above with 8.9.0. I tried with node 18.18.0 and 20.8.0

Expected Behavior

It works as for 8.8.0 (verified that also pruning works correctly)

Which Node.js version are you using?

18.18.0 and 20.8.0

Which operating systems have you used?

  • macOS
  • Windows
  • Linux

If your OS is a Linux based, which one it is? (Include the version if relevant)

No response

About this issue

  • Original URL
  • State: closed
  • Created 9 months ago
  • Comments: 21 (10 by maintainers)

Commits related to this issue

Most upvoted comments

I am releasing 8.9.2, which reverts the change on Windows.

After a few tests, sometimes when cloning multiple file (or the the same file multiple times) the destination is empty, I’m working on a solution.