about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarkus Westerlind <marwes91@gmail.com>2019-03-26 23:45:40 +0100
committerMarkus Westerlind <marwes91@gmail.com>2019-03-26 23:49:14 +0100
commita365287e10c1bbdc2cb5ba33ce71b7a1d56d79f6 (patch)
tree4b79235fc3e72be56dc2c956812d4bccf11d0977
parentfbd34efb32b9efb574899e4335bdc8c6525ac27e (diff)
downloadrust-a365287e10c1bbdc2cb5ba33ce71b7a1d56d79f6.tar.gz
rust-a365287e10c1bbdc2cb5ba33ce71b7a1d56d79f6.zip
fix: Make incremental artifact deletion more robust
Should fix the intermittent errors reported in #57958

cc #48614
-rw-r--r--src/librustc_incremental/persist/fs.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/librustc_incremental/persist/fs.rs b/src/librustc_incremental/persist/fs.rs
index 7dcd5c94bf2..7f697b54484 100644
--- a/src/librustc_incremental/persist/fs.rs
+++ b/src/librustc_incremental/persist/fs.rs
@@ -886,7 +886,10 @@ fn safe_remove_dir_all(p: &Path) -> io::Result<()> {
 fn safe_remove_file(p: &Path) -> io::Result<()> {
     if p.exists() {
         let canonicalized = p.canonicalize()?;
-        std_fs::remove_file(canonicalized)
+        match std_fs::remove_file(canonicalized) {
+            Err(ref err) if err.kind() == io::ErrorKind::NotFound => Ok(()),
+            result => result,
+        }
     } else {
         Ok(())
     }