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();
       }
     }
   }