Skip to content

Conversation

@radical
Copy link
Member

@radical radical commented May 4, 2021

  • For running on AOT tests on helix, we need to send emsdk as a payload

  • On the CI machines, emscripten is available in /usr/local/emscripten/

  • but the helix tasks try to write a .payload file in that dir, which fails
    because of permissions

  • So, we copy emsdk to local src/mono/wasm/emsdk

  • But we were doing it as part of every test build!

    • this meant unncessarily copying, and races causing errors like:
/__w/1/s/eng/testing/tests.wasm.targets(138,5):
    error MSB3026: Could not copy "/usr/local/emscripten/emsdk/node/14.15.5_64bit/bin/node" to "/__w/1/s/src/mono/wasm/emsdk/node/14.15.5_64bit/bin/node".

    Beginning retry 1 in 1000ms. The process cannot access the file '/__w/1/s/src/mono/wasm/emsdk/node/14.15.5_64bit/bin/node' because it is being used by another process.  [/__w/1/s/src/libraries/System.Collections.Specialized/tests/System.Collections.Specialized.Tests.csproj]
  • Instead, do that once when building for pretest

Fixes #52254 .

@ghost
Copy link

ghost commented May 4, 2021

Tagging subscribers to this area: @Anipik, @safern, @ViktorHofer
See info in area-owners.md if you want to be subscribed.

Issue Details
  • For running on AOT tests on helix, we need to send emsdk as a payload

  • On the CI machines, emscripten is available in /usr/local/emscripten/

  • but the helix tasks try to write a .payload file in that dir, which fails
    because of permissions

  • So, we copy emsdk to local src/mono/wasm/emsdk

  • But we were doing it as part of every test build!

    • this meant unncessarily copying, and races causing errors like:
/__w/1/s/eng/testing/tests.wasm.targets(138,5):
    error MSB3026: Could not copy "/usr/local/emscripten/emsdk/node/14.15.5_64bit/bin/node" to "/__w/1/s/src/mono/wasm/emsdk/node/14.15.5_64bit/bin/node".

    Beginning retry 1 in 1000ms. The process cannot access the file '/__w/1/s/src/mono/wasm/emsdk/node/14.15.5_64bit/bin/node' because it is being used by another process.  [/__w/1/s/src/libraries/System.Collections.Specialized/tests/System.Collections.Specialized.Tests.csproj]
  • Instead, do that once when building for pretest

Fixes #52254 .

Author: radical
Assignees: -
Labels:

area-Infrastructure-libraries

Milestone: -

@radical
Copy link
Member Author

radical commented May 4, 2021

hm I'll try to move this closer to helix bits

- For running on AOT tests on helix, we need to send emsdk as a payload
- On the CI machines, emscripten is available in `/usr/local/emscripten/`
- but the helix tasks try to write a `.payload` file in that dir, which fails
  because of permissions

- So, we copy emsdk to local `src/mono/wasm/emsdk`
- But we were doing it as part of *every* test build!
    - this meant unncessarily copying, and races causing errors like:

```
/__w/1/s/eng/testing/tests.wasm.targets(138,5):
    error MSB3026: Could not copy "/usr/local/emscripten/emsdk/node/14.15.5_64bit/bin/node" to "/__w/1/s/src/mono/wasm/emsdk/node/14.15.5_64bit/bin/node".

    Beginning retry 1 in 1000ms. The process cannot access the file '/__w/1/s/src/mono/wasm/emsdk/node/14.15.5_64bit/bin/node' because it is being used by another process.  [/__w/1/s/src/libraries/System.Collections.Specialized/tests/System.Collections.Specialized.Tests.csproj]
```

- Instead, do that once when preparing work items for helix

Fixes dotnet#52254 .
@radical radical force-pushed the fix-emsdk-provision branch from 2ad5c45 to e6163a0 Compare May 4, 2021 22:06
@radical radical marked this pull request as ready for review May 4, 2021 22:07
@radical radical merged commit c3658d2 into dotnet:main May 5, 2021
@radical radical deleted the fix-emsdk-provision branch May 5, 2021 02:11
@karelz karelz added this to the 6.0.0 milestone May 20, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Jun 19, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Race when provisioning the EMSDK

3 participants