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

fix(cafs): avoid race on extracting files from tarballs #8703

Merged
merged 2 commits into from
Oct 28, 2024

Conversation

VladimirNT
Copy link
Contributor

On running addFilesFromTarball with many workers in the pool there were sometimes race conditions on moving files having same content. It resulted in ERR_PNPM_ENOENT and ERR_PNPM_TARBALL_EXTRACT exceptions during install. The issue was introduced in v8.7.0 and generated many defect reports.

Closes #7676, potentially #7607, #7697 and others

On running addFilesFromTarball with many workers in the pool there were sometimes
race conditions on moving files having same content.
It resulted in ERR_PNPM_ENOENT and ERR_PNPM_TARBALL_EXTRACT exceptions during install.
The issue was introduced in v8.7.0 and generated many defect reports.

Closes pnpm#7676, potentially pnpm#7607, pnpm#7697 and others
@VladimirNT VladimirNT requested a review from zkochan as a code owner October 26, 2024 14:06
Copy link

welcome bot commented Oct 26, 2024

💖 Thanks for opening this pull request! 💖
Please be patient and we will get back to you as soon as we can.

@zkochan zkochan merged commit a1f4df2 into pnpm:main Oct 28, 2024
3 of 9 checks passed
Copy link

welcome bot commented Oct 28, 2024

Congrats on merging your first pull request! 🎉🎉🎉

renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this pull request Oct 28, 2024
##### [v9.12.3](https://github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#9123)

##### Patch Changes

-   Don't purge `node_modules`, when typing "n" in the prompt that asks whether to remove `node_modules` before installation [#8655](pnpm/pnpm#8655).
-   Fix a bug causing pnpm to infinitely spawn itself when `manage-package-manager-versions=true` is set and the `.tools` directory is corrupt.
-   Use `crypto.hash`, when available, for improved performance [#8629](pnpm/pnpm#8629).
-   Fixed a race condition in temporary file creation in the store by including worker thread ID in filename. Previously, multiple worker threads could attempt to use the same temporary file. Temporary files now include both process ID and thread ID for uniqueness [#8703](pnpm/pnpm#8703).
-   All commands should read settings from the `package.json` at the root of the workspace [#8667](pnpm/pnpm#8667).
-   When `manage-package-manager-versions` is set to `true`, errors spawning a self-managed version of `pnpm` will now be shown (instead of being silent).
-   Pass the find command to npm, it is an alias for npm search
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ERR_PNPM_TARBALL_EXTRACT error with mv inside content-addressable store
3 participants