Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The existing linker has the following issues;
Symlinks are created in shared spaces that point to action specific runfiles symlink forests and
leading to race conditions (linkers for different executables writing conflicting symlinks). The
latter results in actions running wihtout access to their
node_modules
inputs.Symlink targets are computed in a separate action which may not be using the same execution
strategy or will simply never match if sandboxing is enabled, resulting in invalid symlinks.
The
node_modules
created closest tocwd
points to the originally generatednode_modules
external repository. This contains all packages for the owning
package.json
/yarn.lock
pairand in conjunction with
managed_directories
allows these packages to use files in the userworkspace.
This PR refactors the linker so symlinks are written under
[name].runfiles/
in a thread-safe manner.Compared to the previous implementation;
node_modules
symlinks are written inside the runfiles directory of the current executable.managed_directories
Bazel feature.--worker_sandboxing
and sandboxed spawn strategies).