commit 11de55d0ddd54afabb3e26a85adba0a1f0bbe35b (tree)
parent 63bd0fe58e80742d273a962c03145ce598f060b6
Author: Andrew Kelley <andrew@ziglang.org>
Date: Tue, 14 Mar 2023 11:42:00 -0700
std.Build.Cache: handle ENOENT on createFile race
Companion commit to 628fec41593a2d2eca8b504e4fe90de9823aeded
Diffstat:
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lib/std/Build/Cache.zig b/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,
}
},