There was an error fetching the commit references. Please try again later.
Correctly handle symlinks when prefetching.
In https://github.com/bazelbuild/bazel/commit/5c4cf47a131c84506aad9ce0e014c6643c31a4ac, we replaced `path = path.getRelative(path.readSymbolicLink())` with `path = path.resolveSymbolicLink`. While the former one is wrong for relative symlinks, it actually works for absolute symlinks. The latter one, however, doesn't work if the target doesn't exist on local file system -- and this is the case for most of builds using our internal version of BwoB. This CL fixes that issue by correctly handle both absolute and relative symlinks. Additionally, it correctly handles the case where a symlink points to a tree output. Moved symlink integration tests to the base test class. PiperOrigin-RevId: 549921885 Change-Id: If4009525499f4d0625e7725faf4bb0675984c299
Showing
- src/main/java/com/google/devtools/build/lib/remote/AbstractActionInputPrefetcher.java 46 additions, 6 deletions...tools/build/lib/remote/AbstractActionInputPrefetcher.java
- src/main/java/com/google/devtools/build/lib/vfs/FileSymlinkLoopException.java 3 additions, 2 deletions...ogle/devtools/build/lib/vfs/FileSymlinkLoopException.java
- src/test/java/com/google/devtools/build/lib/remote/BuildWithoutTheBytesIntegrationTest.java 3 additions, 323 deletions...build/lib/remote/BuildWithoutTheBytesIntegrationTest.java
- src/test/java/com/google/devtools/build/lib/remote/BuildWithoutTheBytesIntegrationTestBase.java 330 additions, 0 deletions...d/lib/remote/BuildWithoutTheBytesIntegrationTestBase.java
Please register or sign in to comment