-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Race when provisioning the EMSDK #52254
Comments
Tagging subscribers to this area: @directhex Issue Details
This happens when wasm test projects are bundled in parallel. Usually we try to avoid to provision things in a context that might run in parallel and which doesn't reference the project in any way. In this case I believe the EMSDK provisioning should happen in the context of the sendtohelix project and not as part of a test project's bundle publishing.
|
cc @safern just for awareness and additional thoughts. |
/cc @radical |
- 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 .
- 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 #52254 .
from https://dev.azure.com/dnceng/public/_build/results?buildId=1120261&view=logs&jobId=fddee5b2-3265-5a91-40c1-750d81e69f3f.
This happens when wasm test projects are bundled in parallel. Usually we try to avoid to provision things in a context that might run in parallel and which doesn't reference the project in any way. In this case I believe the EMSDK provisioning should happen in the context of the sendtohelix project and not as part of a test project's bundle publishing.
cc @steveisok @akoeplinger
The text was updated successfully, but these errors were encountered: