commit | 8fd4fe8e12134f7746fc38bb5974087162805f8d | [log] [tgz] |
---|---|---|
author | jmmv <jmmv@google.com> | Thu Mar 19 10:51:44 2020 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Thu Mar 19 10:53:10 2020 -0700 |
tree | fa5c8abe6f67b9fc0b80991947d98ad6a91f576c | |
parent | 4e5b5b04ad6a56b635e9ef185976bcefd2b30de4 [diff] |
Delay creation of params files until we know where the writable execroot is. When using workers or sandboxes, the output tree is not locked until the spawn completes execution. However, some virtual inputs, like params files, have to be materialized before running the spawn. The previous code was materializing these files directly into the output tree without previously grabbing the dynamic execution lock, causing trouble. To fix this, postpone the creation of these files until we know where the writable execroot for a spawn is (which, when using workers or sandboxes is in a location separate from the actual execroot). This fix is gated behind --experimental_delay_virtual_input_materialization so that we can roll it out separately from a release given the limited testing we can do on builds that do local execution. I'll remove the old code paths once we have flipped the flag. Problem diagnosed by felly@. RELNOTES: None. PiperOrigin-RevId: 301849551
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md