Zig Version
0.16.0-dev.2982+b4d134a0d
Steps to Reproduce and Observed Behavior
I've run the standard library tests zig test lib/std/std.zig as preparation for a PR, and due to its nature I've done that on NFS, which isn't normally covered by CI.
Host kernel: 6.19.6-1-default (client)
Guest kernel: 6.8.0-106-generic (server)
Edit: Updated for 0.17.0-dev.3920+9c79c784a
Unit Tests Results on NFS
❯ zig-dev build test-std -Dskip-release -Dskip-non-native
test-std
└─ run test std-native-raptorlake-Debug-libc 3184 pass, 33 skip, 1 fail, 4 crash (3222 total)
error: 'fs.test.test.AtomicFile' terminated with signal ABRT with stderr:
thread 135820 panic: programmer bug caused syscall error: INVAL
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13e534a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:1440:33: 0x13f4a88 in errnoBug (std.zig)
return Threaded.errnoBug(err);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:7744:48: 0x1426929 in dirRenamePreserveLinux (std.zig)
.INVAL => |err| return syscall.errnoBug(err),
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:7508:59: 0x14259a8 in dirRenamePreserve (std.zig)
if (native_os == .linux) return dirRenamePreserveLinux(old_dir, old_sub_path, new_dir, new_sub_path);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:1140:39: 0x1ef146b in renamePreserve (std.zig)
return io.vtable.dirRenamePreserve(io.userdata, old_dir, old_sub_path, new_dir, new_sub_path);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/File/Atomic.zig:55:34: 0x1ef0cef in link (std.zig)
try af.dir.renamePreserve(&tmp_sub_path, af.dir, af.dest_sub_path, io);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1730:28: 0x1f04d44 in impl (std.zig)
try af.link(io);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1f05870 in testWithPathTypeIfSupported__anon_742542 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1f05aec in testWithAllSupportedPathTypes__anon_742538 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1715:38: 0x1f05bfc in test.AtomicFile (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1474cda in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1475add in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14727fe in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
???:?:?: 0x7f9d31e2b33d in ??? (/lib64/libc.so.6)
???:?:?: 0x7f9d31e2b46a in ??? (/lib64/libc.so.6)
../sysdeps/x86_64/start.S:115: 0x3aa7494 in _start (../sysdeps/x86_64/start.S)
error: 'fs.test.test.open file with shared and exclusive nonblocking lock' terminated with signal ABRT with stderr:
thread 135928 panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13e534a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4350:55: 0x143098f in dirCreateFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:642:35: 0x14318ed in createFile (std.zig)
return io.vtable.dirCreateFile(io.userdata, dir, sub_path, flags);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1779:49: 0x1f03939 in impl (std.zig)
const file1 = try ctx.dir.createFile(io, filename, .{ .lock = .shared, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1f03cc0 in testWithPathTypeIfSupported__anon_742452 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1f03f3c in testWithAllSupportedPathTypes__anon_742448 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1774:38: 0x1f0404c in test.open file with shared and exclusive nonblocking lock (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1474cda in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1475add in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14727fe in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
???:?:?: 0x7f2a3022b33d in ??? (/lib64/libc.so.6)
???:?:?: 0x7f2a3022b46a in ??? (/lib64/libc.so.6)
../sysdeps/x86_64/start.S:115: 0x3aa7494 in _start (../sysdeps/x86_64/start.S)
error: 'fs.test.test.open file with exclusive and shared nonblocking lock' terminated with signal ABRT with stderr:
thread 135957 panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13e534a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4350:55: 0x143098f in dirCreateFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:642:35: 0x14318ed in createFile (std.zig)
return io.vtable.dirCreateFile(io.userdata, dir, sub_path, flags);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1799:45: 0x1f03159 in impl (std.zig)
const file2 = ctx.dir.createFile(io, filename, .{ .lock = .shared, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1f03420 in testWithPathTypeIfSupported__anon_742402 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1f0369c in testWithAllSupportedPathTypes__anon_742398 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1791:38: 0x1f037ac in test.open file with exclusive and shared nonblocking lock (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1474cda in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1475add in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14727fe in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
???:?:?: 0x7f02d742b33d in ??? (/lib64/libc.so.6)
???:?:?: 0x7f02d742b46a in ??? (/lib64/libc.so.6)
../sysdeps/x86_64/start.S:115: 0x3aa7494 in _start (../sysdeps/x86_64/start.S)
error: 'fs.test.test.use Lock.none to unlock files' terminated with signal ABRT with stderr:
thread 136002 panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13e534a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4946:55: 0x142d86a in dirOpenFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:581:33: 0x12e4b3a in openFile (std.zig)
return io.vtable.dirOpenFile(io.userdata, dir, sub_path, options);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1933:44: 0x1efcec9 in test.use Lock.none to unlock files (std.zig)
const test_file2 = try tmp.dir.openFile(io, "test_file", .{ .lock = .exclusive, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1474cda in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1475add in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14727fe in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
???:?:?: 0x7f6d2242b33d in ??? (/lib64/libc.so.6)
???:?:?: 0x7f6d2242b46a in ??? (/lib64/libc.so.6)
../sysdeps/x86_64/start.S:115: 0x3aa7494 in _start (../sysdeps/x86_64/start.S)
error: 'fs.test.test.hard link with different directories' failed:
expected 1, found 2
/home/erez/projects/playground/nfs/zig/lib/std/testing.zig:110:17: 0x1983254 in expectEqualInner__anon_66628 (std.zig)
return error.TestExpectedEqual;
^
/home/erez/projects/playground/nfs/zig/lib/std/testing.zig:75:5: 0x1edf616 in expectEqual (std.zig)
return expectEqualInner(T, expected, actual);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:2718:5: 0x1edf74d in test.hard link with different directories (std.zig)
try expectEqual(1, e_stat.nlink);
^
failed command: ./.zig-cache/o/be7eff69857845290ad9a9a0bf014ded/test --cache-dir=./.zig-cache --seed=0xc1ac8bd8 --listen=-
test-std
└─ run test std-native-raptorlake-Debug-single 3159 pass, 68 skip, 1 fail, 4 crash (3232 total)
error: 'fs.test.test.AtomicFile' terminated with signal ABRT with stderr:
panic: programmer bug caused syscall error: INVAL
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13d85da in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:1440:33: 0x13ea778 in errnoBug (std.zig)
return Threaded.errnoBug(err);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:7744:48: 0x141f909 in dirRenamePreserveLinux (std.zig)
.INVAL => |err| return syscall.errnoBug(err),
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:7508:59: 0x141e988 in dirRenamePreserve (std.zig)
if (native_os == .linux) return dirRenamePreserveLinux(old_dir, old_sub_path, new_dir, new_sub_path);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:1140:39: 0x1ec873b in renamePreserve (std.zig)
return io.vtable.dirRenamePreserve(io.userdata, old_dir, old_sub_path, new_dir, new_sub_path);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/File/Atomic.zig:55:34: 0x1ec7fbf in link (std.zig)
try af.dir.renamePreserve(&tmp_sub_path, af.dir, af.dest_sub_path, io);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1730:28: 0x1edbbc5 in impl (std.zig)
try af.link(io);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1edc6f0 in testWithPathTypeIfSupported__anon_741527 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1edc96c in testWithAllSupportedPathTypes__anon_741523 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1715:38: 0x1edca7c in test.AtomicFile (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1465e25 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1466c5d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14636b0 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14630a1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.open file with shared and exclusive nonblocking lock' terminated with signal ABRT with stderr:
panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13d85da in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4350:55: 0x142955a in dirCreateFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:642:35: 0x142a7fd in createFile (std.zig)
return io.vtable.dirCreateFile(io.userdata, dir, sub_path, flags);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1779:49: 0x1eda7b9 in impl (std.zig)
const file1 = try ctx.dir.createFile(io, filename, .{ .lock = .shared, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1edab40 in testWithPathTypeIfSupported__anon_741437 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1edadbc in testWithAllSupportedPathTypes__anon_741433 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1774:38: 0x1edaecc in test.open file with shared and exclusive nonblocking lock (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1465e25 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1466c5d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14636b0 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14630a1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.open file with exclusive and shared nonblocking lock' terminated with signal ABRT with stderr:
panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13d85da in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4350:55: 0x142955a in dirCreateFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:642:35: 0x142a7fd in createFile (std.zig)
return io.vtable.dirCreateFile(io.userdata, dir, sub_path, flags);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1799:45: 0x1ed9fd9 in impl (std.zig)
const file2 = ctx.dir.createFile(io, filename, .{ .lock = .shared, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1eda2a0 in testWithPathTypeIfSupported__anon_741387 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1eda51c in testWithAllSupportedPathTypes__anon_741383 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1791:38: 0x1eda62c in test.open file with exclusive and shared nonblocking lock (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1465e25 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1466c5d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14636b0 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14630a1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.use Lock.none to unlock files' terminated with signal ABRT with stderr:
panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13d85da in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4946:55: 0x14260b1 in dirOpenFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:581:33: 0x12c45fa in openFile (std.zig)
return io.vtable.dirOpenFile(io.userdata, dir, sub_path, options);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1933:44: 0x1ed37eb in test.use Lock.none to unlock files (std.zig)
const test_file2 = try tmp.dir.openFile(io, "test_file", .{ .lock = .exclusive, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1465e25 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1466c5d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14636b0 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14630a1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.hard link with different directories' failed:
expected 1, found 2
/home/erez/projects/playground/nfs/zig/lib/std/testing.zig:110:17: 0x195ae14 in expectEqualInner__anon_65764 (std.zig)
return error.TestExpectedEqual;
^
/home/erez/projects/playground/nfs/zig/lib/std/testing.zig:75:5: 0x1eb67eb in expectEqual (std.zig)
return expectEqualInner(T, expected, actual);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:2718:5: 0x1eb6922 in test.hard link with different directories (std.zig)
try expectEqual(1, e_stat.nlink);
^
failed command: ./.zig-cache/o/c711ff5c89b2ca4f83d240c392e5ccec/test --cache-dir=./.zig-cache --seed=0xc1ac8bd8 --listen=-
test-std
└─ run test std-native-raptorlake-Debug 3185 pass, 32 skip, 1 fail, 4 crash (3222 total)
error: 'fs.test.test.AtomicFile' terminated with signal ABRT with stderr:
thread 136085 panic: programmer bug caused syscall error: INVAL
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x1400d0a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:1440:33: 0x1412c08 in errnoBug (std.zig)
return Threaded.errnoBug(err);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:7744:48: 0x1447d09 in dirRenamePreserveLinux (std.zig)
.INVAL => |err| return syscall.errnoBug(err),
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:7508:59: 0x1446d88 in dirRenamePreserve (std.zig)
if (native_os == .linux) return dirRenamePreserveLinux(old_dir, old_sub_path, new_dir, new_sub_path);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:1140:39: 0x1f108db in renamePreserve (std.zig)
return io.vtable.dirRenamePreserve(io.userdata, old_dir, old_sub_path, new_dir, new_sub_path);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/File/Atomic.zig:55:34: 0x1f1015f in link (std.zig)
try af.dir.renamePreserve(&tmp_sub_path, af.dir, af.dest_sub_path, io);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1730:28: 0x1f23805 in impl (std.zig)
try af.link(io);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1f24330 in testWithPathTypeIfSupported__anon_743305 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1f245ac in testWithAllSupportedPathTypes__anon_743301 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1715:38: 0x1f246bc in test.AtomicFile (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x14974e5 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x149831d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x1494b05 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14944e1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.open file with shared and exclusive nonblocking lock' terminated with signal ABRT with stderr:
thread 136245 panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x1400d0a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4350:55: 0x145195a in dirCreateFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:642:35: 0x1452bfd in createFile (std.zig)
return io.vtable.dirCreateFile(io.userdata, dir, sub_path, flags);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1779:49: 0x1f223f9 in impl (std.zig)
const file1 = try ctx.dir.createFile(io, filename, .{ .lock = .shared, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1f22780 in testWithPathTypeIfSupported__anon_743215 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1f229fc in testWithAllSupportedPathTypes__anon_743211 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1774:38: 0x1f22b0c in test.open file with shared and exclusive nonblocking lock (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x14974e5 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x149831d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x1494b05 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14944e1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.open file with exclusive and shared nonblocking lock' terminated with signal ABRT with stderr:
thread 136309 panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x1400d0a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4350:55: 0x145195a in dirCreateFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:642:35: 0x1452bfd in createFile (std.zig)
return io.vtable.dirCreateFile(io.userdata, dir, sub_path, flags);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1799:45: 0x1f21c19 in impl (std.zig)
const file2 = ctx.dir.createFile(io, filename, .{ .lock = .shared, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1f21ee0 in testWithPathTypeIfSupported__anon_743165 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1f2215c in testWithAllSupportedPathTypes__anon_743161 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1791:38: 0x1f2226c in test.open file with exclusive and shared nonblocking lock (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x14974e5 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x149831d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x1494b05 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14944e1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.use Lock.none to unlock files' terminated with signal ABRT with stderr:
thread 136358 panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x1400d0a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4946:55: 0x144e4b1 in dirOpenFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:581:33: 0x12ec19a in openFile (std.zig)
return io.vtable.dirOpenFile(io.userdata, dir, sub_path, options);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1933:44: 0x1f1b98b in test.use Lock.none to unlock files (std.zig)
const test_file2 = try tmp.dir.openFile(io, "test_file", .{ .lock = .exclusive, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x14974e5 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x149831d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x1494b05 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14944e1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.hard link with different directories' failed:
expected 1, found 2
/home/erez/projects/playground/nfs/zig/lib/std/testing.zig:110:17: 0x19a3364 in expectEqualInner__anon_67739 (std.zig)
return error.TestExpectedEqual;
^
/home/erez/projects/playground/nfs/zig/lib/std/testing.zig:75:5: 0x1efea4b in expectEqual (std.zig)
return expectEqualInner(T, expected, actual);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:2718:5: 0x1efeb82 in test.hard link with different directories (std.zig)
try expectEqual(1, e_stat.nlink);
^
failed command: ./.zig-cache/o/20618fbe60fa20e4c73a15326e458f8f/test --cache-dir=./.zig-cache --seed=0xc1ac8bd8 --listen=-
Build Summary: 3/7 steps succeeded (3 failed); 9528/9676 tests passed (133 skipped, 3 failed, 12 crashed)
test-std transitive failure
├─ run test std-native-raptorlake-Debug 3185 pass, 32 skip, 1 fail, 4 crash (3222 total)
├─ run test std-native-raptorlake-Debug-libc 3184 pass, 33 skip, 1 fail, 4 crash (3222 total)
└─ run test std-native-raptorlake-Debug-single 3159 pass, 68 skip, 1 fail, 4 crash (3232 total)
error: the following maker command exited with code 1:
/home/erez/.cache/zig/o/438be5a36392a27b35fb716fcf84e0ac/maker --zig /home/erez/src/zig/build/stage3/bin/zig --zig-lib-dir /home/erez/src/zig/build/stage3/lib/zig --build-root /home/erez/projects/playground/nfs/zig --local-cache .zig-cache --global-cache /home/erez/.cache/zig --configuration .zig-cache/tmp/4b5f5356dcf6e8d3 --seed 0xc1ac8bd8 test-std
[ble: exit 1][ble: elapsed 376.602s (CPU 48.5%)] zig-dev build test-std -Dskip-release -Dskip-non-native
Expected Behavior
All std.fs tests pass or officially not support less common filesystems.
### Zig Version
0.16.0-dev.2982+b4d134a0d
### Steps to Reproduce and Observed Behavior
I've run the standard library tests `zig test lib/std/std.zig` as preparation for a PR, and due to its nature I've done that on NFS, which isn't normally covered by CI.
Host kernel: `6.19.6-1-default` (client)
Guest kernel: `6.8.0-106-generic` (server)
Edit: Updated for `0.17.0-dev.3920+9c79c784a`
### Unit Tests Results on NFS
```
❯ zig-dev build test-std -Dskip-release -Dskip-non-native
test-std
└─ run test std-native-raptorlake-Debug-libc 3184 pass, 33 skip, 1 fail, 4 crash (3222 total)
error: 'fs.test.test.AtomicFile' terminated with signal ABRT with stderr:
thread 135820 panic: programmer bug caused syscall error: INVAL
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13e534a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:1440:33: 0x13f4a88 in errnoBug (std.zig)
return Threaded.errnoBug(err);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:7744:48: 0x1426929 in dirRenamePreserveLinux (std.zig)
.INVAL => |err| return syscall.errnoBug(err),
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:7508:59: 0x14259a8 in dirRenamePreserve (std.zig)
if (native_os == .linux) return dirRenamePreserveLinux(old_dir, old_sub_path, new_dir, new_sub_path);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:1140:39: 0x1ef146b in renamePreserve (std.zig)
return io.vtable.dirRenamePreserve(io.userdata, old_dir, old_sub_path, new_dir, new_sub_path);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/File/Atomic.zig:55:34: 0x1ef0cef in link (std.zig)
try af.dir.renamePreserve(&tmp_sub_path, af.dir, af.dest_sub_path, io);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1730:28: 0x1f04d44 in impl (std.zig)
try af.link(io);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1f05870 in testWithPathTypeIfSupported__anon_742542 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1f05aec in testWithAllSupportedPathTypes__anon_742538 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1715:38: 0x1f05bfc in test.AtomicFile (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1474cda in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1475add in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14727fe in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
???:?:?: 0x7f9d31e2b33d in ??? (/lib64/libc.so.6)
???:?:?: 0x7f9d31e2b46a in ??? (/lib64/libc.so.6)
../sysdeps/x86_64/start.S:115: 0x3aa7494 in _start (../sysdeps/x86_64/start.S)
error: 'fs.test.test.open file with shared and exclusive nonblocking lock' terminated with signal ABRT with stderr:
thread 135928 panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13e534a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4350:55: 0x143098f in dirCreateFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:642:35: 0x14318ed in createFile (std.zig)
return io.vtable.dirCreateFile(io.userdata, dir, sub_path, flags);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1779:49: 0x1f03939 in impl (std.zig)
const file1 = try ctx.dir.createFile(io, filename, .{ .lock = .shared, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1f03cc0 in testWithPathTypeIfSupported__anon_742452 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1f03f3c in testWithAllSupportedPathTypes__anon_742448 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1774:38: 0x1f0404c in test.open file with shared and exclusive nonblocking lock (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1474cda in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1475add in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14727fe in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
???:?:?: 0x7f2a3022b33d in ??? (/lib64/libc.so.6)
???:?:?: 0x7f2a3022b46a in ??? (/lib64/libc.so.6)
../sysdeps/x86_64/start.S:115: 0x3aa7494 in _start (../sysdeps/x86_64/start.S)
error: 'fs.test.test.open file with exclusive and shared nonblocking lock' terminated with signal ABRT with stderr:
thread 135957 panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13e534a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4350:55: 0x143098f in dirCreateFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:642:35: 0x14318ed in createFile (std.zig)
return io.vtable.dirCreateFile(io.userdata, dir, sub_path, flags);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1799:45: 0x1f03159 in impl (std.zig)
const file2 = ctx.dir.createFile(io, filename, .{ .lock = .shared, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1f03420 in testWithPathTypeIfSupported__anon_742402 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1f0369c in testWithAllSupportedPathTypes__anon_742398 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1791:38: 0x1f037ac in test.open file with exclusive and shared nonblocking lock (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1474cda in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1475add in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14727fe in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
???:?:?: 0x7f02d742b33d in ??? (/lib64/libc.so.6)
???:?:?: 0x7f02d742b46a in ??? (/lib64/libc.so.6)
../sysdeps/x86_64/start.S:115: 0x3aa7494 in _start (../sysdeps/x86_64/start.S)
error: 'fs.test.test.use Lock.none to unlock files' terminated with signal ABRT with stderr:
thread 136002 panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13e534a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4946:55: 0x142d86a in dirOpenFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:581:33: 0x12e4b3a in openFile (std.zig)
return io.vtable.dirOpenFile(io.userdata, dir, sub_path, options);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1933:44: 0x1efcec9 in test.use Lock.none to unlock files (std.zig)
const test_file2 = try tmp.dir.openFile(io, "test_file", .{ .lock = .exclusive, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1474cda in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1475add in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14727fe in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
???:?:?: 0x7f6d2242b33d in ??? (/lib64/libc.so.6)
???:?:?: 0x7f6d2242b46a in ??? (/lib64/libc.so.6)
../sysdeps/x86_64/start.S:115: 0x3aa7494 in _start (../sysdeps/x86_64/start.S)
error: 'fs.test.test.hard link with different directories' failed:
expected 1, found 2
/home/erez/projects/playground/nfs/zig/lib/std/testing.zig:110:17: 0x1983254 in expectEqualInner__anon_66628 (std.zig)
return error.TestExpectedEqual;
^
/home/erez/projects/playground/nfs/zig/lib/std/testing.zig:75:5: 0x1edf616 in expectEqual (std.zig)
return expectEqualInner(T, expected, actual);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:2718:5: 0x1edf74d in test.hard link with different directories (std.zig)
try expectEqual(1, e_stat.nlink);
^
failed command: ./.zig-cache/o/be7eff69857845290ad9a9a0bf014ded/test --cache-dir=./.zig-cache --seed=0xc1ac8bd8 --listen=-
test-std
└─ run test std-native-raptorlake-Debug-single 3159 pass, 68 skip, 1 fail, 4 crash (3232 total)
error: 'fs.test.test.AtomicFile' terminated with signal ABRT with stderr:
panic: programmer bug caused syscall error: INVAL
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13d85da in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:1440:33: 0x13ea778 in errnoBug (std.zig)
return Threaded.errnoBug(err);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:7744:48: 0x141f909 in dirRenamePreserveLinux (std.zig)
.INVAL => |err| return syscall.errnoBug(err),
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:7508:59: 0x141e988 in dirRenamePreserve (std.zig)
if (native_os == .linux) return dirRenamePreserveLinux(old_dir, old_sub_path, new_dir, new_sub_path);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:1140:39: 0x1ec873b in renamePreserve (std.zig)
return io.vtable.dirRenamePreserve(io.userdata, old_dir, old_sub_path, new_dir, new_sub_path);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/File/Atomic.zig:55:34: 0x1ec7fbf in link (std.zig)
try af.dir.renamePreserve(&tmp_sub_path, af.dir, af.dest_sub_path, io);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1730:28: 0x1edbbc5 in impl (std.zig)
try af.link(io);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1edc6f0 in testWithPathTypeIfSupported__anon_741527 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1edc96c in testWithAllSupportedPathTypes__anon_741523 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1715:38: 0x1edca7c in test.AtomicFile (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1465e25 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1466c5d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14636b0 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14630a1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.open file with shared and exclusive nonblocking lock' terminated with signal ABRT with stderr:
panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13d85da in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4350:55: 0x142955a in dirCreateFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:642:35: 0x142a7fd in createFile (std.zig)
return io.vtable.dirCreateFile(io.userdata, dir, sub_path, flags);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1779:49: 0x1eda7b9 in impl (std.zig)
const file1 = try ctx.dir.createFile(io, filename, .{ .lock = .shared, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1edab40 in testWithPathTypeIfSupported__anon_741437 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1edadbc in testWithAllSupportedPathTypes__anon_741433 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1774:38: 0x1edaecc in test.open file with shared and exclusive nonblocking lock (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1465e25 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1466c5d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14636b0 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14630a1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.open file with exclusive and shared nonblocking lock' terminated with signal ABRT with stderr:
panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13d85da in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4350:55: 0x142955a in dirCreateFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:642:35: 0x142a7fd in createFile (std.zig)
return io.vtable.dirCreateFile(io.userdata, dir, sub_path, flags);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1799:45: 0x1ed9fd9 in impl (std.zig)
const file2 = ctx.dir.createFile(io, filename, .{ .lock = .shared, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1eda2a0 in testWithPathTypeIfSupported__anon_741387 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1eda51c in testWithAllSupportedPathTypes__anon_741383 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1791:38: 0x1eda62c in test.open file with exclusive and shared nonblocking lock (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1465e25 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1466c5d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14636b0 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14630a1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.use Lock.none to unlock files' terminated with signal ABRT with stderr:
panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x13d85da in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4946:55: 0x14260b1 in dirOpenFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:581:33: 0x12c45fa in openFile (std.zig)
return io.vtable.dirOpenFile(io.userdata, dir, sub_path, options);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1933:44: 0x1ed37eb in test.use Lock.none to unlock files (std.zig)
const test_file2 = try tmp.dir.openFile(io, "test_file", .{ .lock = .exclusive, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x1465e25 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x1466c5d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x14636b0 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14630a1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.hard link with different directories' failed:
expected 1, found 2
/home/erez/projects/playground/nfs/zig/lib/std/testing.zig:110:17: 0x195ae14 in expectEqualInner__anon_65764 (std.zig)
return error.TestExpectedEqual;
^
/home/erez/projects/playground/nfs/zig/lib/std/testing.zig:75:5: 0x1eb67eb in expectEqual (std.zig)
return expectEqualInner(T, expected, actual);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:2718:5: 0x1eb6922 in test.hard link with different directories (std.zig)
try expectEqual(1, e_stat.nlink);
^
failed command: ./.zig-cache/o/c711ff5c89b2ca4f83d240c392e5ccec/test --cache-dir=./.zig-cache --seed=0xc1ac8bd8 --listen=-
test-std
└─ run test std-native-raptorlake-Debug 3185 pass, 32 skip, 1 fail, 4 crash (3222 total)
error: 'fs.test.test.AtomicFile' terminated with signal ABRT with stderr:
thread 136085 panic: programmer bug caused syscall error: INVAL
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x1400d0a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:1440:33: 0x1412c08 in errnoBug (std.zig)
return Threaded.errnoBug(err);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:7744:48: 0x1447d09 in dirRenamePreserveLinux (std.zig)
.INVAL => |err| return syscall.errnoBug(err),
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:7508:59: 0x1446d88 in dirRenamePreserve (std.zig)
if (native_os == .linux) return dirRenamePreserveLinux(old_dir, old_sub_path, new_dir, new_sub_path);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:1140:39: 0x1f108db in renamePreserve (std.zig)
return io.vtable.dirRenamePreserve(io.userdata, old_dir, old_sub_path, new_dir, new_sub_path);
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/File/Atomic.zig:55:34: 0x1f1015f in link (std.zig)
try af.dir.renamePreserve(&tmp_sub_path, af.dir, af.dest_sub_path, io);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1730:28: 0x1f23805 in impl (std.zig)
try af.link(io);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1f24330 in testWithPathTypeIfSupported__anon_743305 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1f245ac in testWithAllSupportedPathTypes__anon_743301 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1715:38: 0x1f246bc in test.AtomicFile (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x14974e5 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x149831d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x1494b05 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14944e1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.open file with shared and exclusive nonblocking lock' terminated with signal ABRT with stderr:
thread 136245 panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x1400d0a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4350:55: 0x145195a in dirCreateFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:642:35: 0x1452bfd in createFile (std.zig)
return io.vtable.dirCreateFile(io.userdata, dir, sub_path, flags);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1779:49: 0x1f223f9 in impl (std.zig)
const file1 = try ctx.dir.createFile(io, filename, .{ .lock = .shared, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1f22780 in testWithPathTypeIfSupported__anon_743215 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1f229fc in testWithAllSupportedPathTypes__anon_743211 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1774:38: 0x1f22b0c in test.open file with shared and exclusive nonblocking lock (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x14974e5 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x149831d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x1494b05 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14944e1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.open file with exclusive and shared nonblocking lock' terminated with signal ABRT with stderr:
thread 136309 panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x1400d0a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4350:55: 0x145195a in dirCreateFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:642:35: 0x1452bfd in createFile (std.zig)
return io.vtable.dirCreateFile(io.userdata, dir, sub_path, flags);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1799:45: 0x1f21c19 in impl (std.zig)
const file2 = ctx.dir.createFile(io, filename, .{ .lock = .shared, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:184:18: 0x1f21ee0 in testWithPathTypeIfSupported__anon_743165 (std.zig)
try test_func(&ctx);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:169:36: 0x1f2215c in testWithAllSupportedPathTypes__anon_743161 (std.zig)
try testWithPathTypeIfSupported(.relative, '/', test_func);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1791:38: 0x1f2226c in test.open file with exclusive and shared nonblocking lock (std.zig)
try testWithAllSupportedPathTypes(struct {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x14974e5 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x149831d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x1494b05 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14944e1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.use Lock.none to unlock files' terminated with signal ABRT with stderr:
thread 136358 panic: programmer bug caused syscall error: BADF
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:14195:34: 0x1400d0a in errnoBug (std.zig)
if (is_debug) std.debug.panic("programmer bug caused syscall error: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Threaded.zig:4946:55: 0x144e4b1 in dirOpenFilePosix (std.zig)
.BADF => |err| return errnoBug(err), // File descriptor used after closed.
^
/home/erez/projects/playground/nfs/zig/lib/std/Io/Dir.zig:581:33: 0x12ec19a in openFile (std.zig)
return io.vtable.dirOpenFile(io.userdata, dir, sub_path, options);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:1933:44: 0x1f1b98b in test.use Lock.none to unlock files (std.zig)
const test_file2 = try tmp.dir.openFile(io, "test_file", .{ .lock = .exclusive, .lock_nonblocking = true });
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:143:68: 0x14974e5 in mainServer (test_runner.zig)
const status: TestResults.Status = if (test_fn.func()) |v| s: {
^
/home/erez/projects/playground/nfs/zig/lib/compiler/test_runner.zig:71:26: 0x149831d in main (test_runner.zig)
return mainServer(init) catch |err| panic("internal test runner failure: {t}", .{err});
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:740:88: 0x1494b05 in callMain (std.zig)
if (fn_info.param_types[0].? == std.process.Init.Minimal) return wrapMain(root.main(.{
^
/home/erez/projects/playground/nfs/zig/lib/std/start.zig:205:5: 0x14944e1 in _start (std.zig)
asm volatile (switch (native_arch) {
^
error: 'fs.test.test.hard link with different directories' failed:
expected 1, found 2
/home/erez/projects/playground/nfs/zig/lib/std/testing.zig:110:17: 0x19a3364 in expectEqualInner__anon_67739 (std.zig)
return error.TestExpectedEqual;
^
/home/erez/projects/playground/nfs/zig/lib/std/testing.zig:75:5: 0x1efea4b in expectEqual (std.zig)
return expectEqualInner(T, expected, actual);
^
/home/erez/projects/playground/nfs/zig/lib/std/fs/test.zig:2718:5: 0x1efeb82 in test.hard link with different directories (std.zig)
try expectEqual(1, e_stat.nlink);
^
failed command: ./.zig-cache/o/20618fbe60fa20e4c73a15326e458f8f/test --cache-dir=./.zig-cache --seed=0xc1ac8bd8 --listen=-
Build Summary: 3/7 steps succeeded (3 failed); 9528/9676 tests passed (133 skipped, 3 failed, 12 crashed)
test-std transitive failure
├─ run test std-native-raptorlake-Debug 3185 pass, 32 skip, 1 fail, 4 crash (3222 total)
├─ run test std-native-raptorlake-Debug-libc 3184 pass, 33 skip, 1 fail, 4 crash (3222 total)
└─ run test std-native-raptorlake-Debug-single 3159 pass, 68 skip, 1 fail, 4 crash (3232 total)
error: the following maker command exited with code 1:
/home/erez/.cache/zig/o/438be5a36392a27b35fb716fcf84e0ac/maker --zig /home/erez/src/zig/build/stage3/bin/zig --zig-lib-dir /home/erez/src/zig/build/stage3/lib/zig --build-root /home/erez/projects/playground/nfs/zig --local-cache .zig-cache --global-cache /home/erez/.cache/zig --configuration .zig-cache/tmp/4b5f5356dcf6e8d3 --seed 0xc1ac8bd8 test-std
[ble: exit 1][ble: elapsed 376.602s (CPU 48.5%)] zig-dev build test-std -Dskip-release -Dskip-non-native
```
### Expected Behavior
All `std.fs` tests pass or officially not support less common filesystems.