Skip to content

Closure compiler breakage on windows emscripten-releases builder #10304

@sbc100

Description

@sbc100

Since #9989 the emscripten-releases builder has been unable to roll the emscripten version.

The logs looks like this:

Error: EPERM: operation not permitted, mkdir 'C:\'
    at Object.mkdirSync (fs.js:806:3)
    at C:\b\s\w\ir\k\install\emscripten\node_modules\google-closure-compiler\cli.js:32:10
    at Array.reduce (<anonymous>)
    at mkDirByPathSync (C:\b\s\w\ir\k\install\emscripten\node_modules\google-closure-compiler\cli.js:29:24)
    at C:\b\s\w\ir\k\install\emscripten\node_modules\google-closure-compiler\cli.js:179:13
    at Array.forEach (<anonymous>)
    at C:\b\s\w\ir\k\install\emscripten\node_modules\google-closure-compiler\cli.js:178:32 {
  errno: -4048,
  syscall: 'mkdir',
  code: 'EPERM',
  path: 'C:\\'
}

https://chromium-review.googlesource.com/c/emscripten-releases/+/2026425

I tracked the problem down to a chain of different issues:

  1. The emscripten-releases builder doesn't install the native version of the compiler (most likely because it doesn't find a compiler it likes at npm install time).
  2. The default closure compiler decides to choose the JS version even thought java version is installed (Java doesn't seem be looked for in the path google/closure-compiler-npm#160)
  3. The JS version seems to broken on windows which is the actual error we see (JS version failing on windows google/closure-compiler-npm#161)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions