commit | 1746d6341d22278a615a3707f2ab9e5a9d83df0b | [log] [tgz] |
---|---|---|
author | Bohdan Vanieiev <warchantua@gmail.com> | Tue Jan 25 08:06:55 2022 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Jan 25 08:08:34 2022 -0800 |
tree | cbc189a0d7daeb53dd267dc590f575c72ab8baf1 | |
parent | 801bb4b13ccad94af63f1cc4632329ad4674fb64 [diff] |
Fix stack overflow exception in deleteOutput Fixes https://github.com/bazelbuild/bazel/issues/14393 Closes #14637. PiperOrigin-RevId: 424084162
diff --git a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java index 50f5f79..408371b 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java +++ b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java
@@ -494,13 +494,14 @@ Path parentDir = path.getParentDirectory(); if (!parentDir.isWritable() && root.contains(parentDir)) { - // Retry deleting after making the parent writable. parentDir.setWritable(true); - deleteOutput(path, root); - } else if (path.isDirectory(Symlinks.NOFOLLOW)) { + } + + // Retry deleting after making the parent writable. + if (path.isDirectory(Symlinks.NOFOLLOW)) { path.deleteTree(); } else { - throw new IOException(e); + path.delete(); } } }