Commit 11de55d0dd

Andrew Kelley <andrew@ziglang.org>
2023-03-14 19:42:00
std.Build.Cache: handle ENOENT on createFile race
Companion commit to 628fec41593a2d2eca8b504e4fe90de9823aeded
1 parent 63bd0fe
Changed files (1)
lib
std
Build
lib/std/Build/Cache.zig
@@ -422,7 +422,11 @@ pub const Manifest = struct {
                             self.have_exclusive_lock = true;
                             return false; // cache miss; exclusive lock already held
                         } else |err| switch (err) {
-                            error.WouldBlock => continue,
+                            // There are no dir components, so you would think
+                            // that this was unreachable, however we have
+                            // observed on macOS two processes racing to do
+                            // openat() with O_CREAT manifest in ENOENT.
+                            error.WouldBlock, error.FileNotFound => continue,
                             else => |e| return e,
                         }
                     },