node-gradle / node-gradle/gradle-node-plugin

pnpmInstall: Throws strange exceptions: Solved with "--no-parallel"

Open
#302 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
Groovy
Stars
677
Forks
120
PR merge metrics
No merged PRs in 30d

Description

I get these exceptions when calling gradle pnpmInstall from my project root (with several sub projects configured for pnpm):

> Task :internal:closed:webapps:meistercharts.com:pnpmInstall FAILED
Caching disabled for task ':internal:closed:webapps:meistercharts.com:pnpmInstall' because:
  Caching has not been enabled for the task
Task ':internal:closed:webapps:meistercharts.com:pnpmInstall' is not up-to-date because:
  Output property 'nodeModulesDirectory' file /home/johannes/projects/com.cedarsoft.monorepo/internal/closed/webapps/meistercharts.com/node_modules/@astrojs/check has been removed.
  Output property 'nodeModulesDirectory' file /home/johannes/projects/com.cedarsoft.monorepo/internal/closed/webapps/meistercharts.com/node_modules/@astrojs/check/LICENSE has been removed.
  Output property 'nodeModulesDirectory' file /home/johannes/projects/com.cedarsoft.monorepo/internal/closed/webapps/meistercharts.com/node_modules/@astrojs/check/dist has been removed.
Starting process 'command '/home/johannes/projects/com.cedarsoft.monorepo/internal/closed/webapps/meistercharts.com/build/node/pnpm/pnpm-v8.15.1/bin/pnpm''. Working directory: /home/johannes/projects/com.cedarsoft.monorepo/internal/closed/webapps/meistercharts.com Command: /home/johannes/projects/com.cedarsoft.monorepo/internal/closed/webapps/meistercharts.com/build/node/pnpm/pnpm-v8.15.1/bin/pnpm install
Successfully started process 'command '/home/johannes/projects/com.cedarsoft.monorepo/internal/closed/webapps/meistercharts.com/build/node/pnpm/pnpm-v8.15.1/bin/pnpm''
Scope: all 12 workspace projects
../../../..                              | Progress: resolved 1, reused 0, downloaded 0, added 0
../../../..                              |    +2358 ++++++++++++++++++++++++++++
../../../..                              | Progress: resolved 2358, reused 288, downloaded 0, added 0
../../../..                              | Progress: resolved 2358, reused 1799, downloaded 0, added 0
../../../..                              | Progress: resolved 2358, reused 2352, downloaded 0, added 0
../../../..                              | Progress: resolved 2358, reused 2352, downloaded 0, added 0, done
 ENOENT  ENOENT: no such file or directory, unlink '/home/johannes/projects/com.cedarsoft.monorepo/node_modules/.pnpm/node_modules/tunnel-agent'

The exact error message changes every time:

 ERR_PNPM_LINKING_FAILED  Error: ENOTEMPTY: directory not empty, rmdir '/home/johannes/projects/com.cedarsoft.monorepo/node_modules/.pnpm/shikiji@0.9.19/node_modules/shikiji/dist/langs'

 ERR_PNPM_LINKING_FAILED  Error: ENOTEMPTY: directory not empty, rename '/home/johannes/projects/com.cedarsoft.monorepo/node_modules/.pnpm/postcss-calc@8.2.4_postcss@8.4.33/node_modules/postcss-calc_tmp_15783' -> '/home/johannes/projects/com.cedarsoft.monorepo/node_modules/.pnpm/postcss-calc@8.2.4_postcss@8.4.33/node_modules/postcss-calc'

The exception does not happen if adding "--no-parallel".

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

Reproduce the gradle pnpmInstall failure in a project with several pnpm subprojects, then compare it with the --no-parallel invocation. Investigate the pnpmInstall task's parallel execution and verify completion without ENOENT or ENOTEMPTY linking errors while retaining parallel operation.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.