zls icon indicating copy to clipboard operation
zls copied to clipboard

`zig build test` fails on Windows 10

Open cr1901 opened this issue 3 years ago • 1 comments

While trying to debug why zls might be restarting, I decided to run the tests, and found that they fail on Windows 10:

$ zig.exe build test -Dtarget=x86_64-windows-gnu -Drelease-small
All 2 tests passed.
Test [0/8] test "Open file, ask for semantic tokens"... [err-default] Unexpected
error.Unexpected: GetLastError(232): The pipe is being closed.

C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\debug.zig:485:53: 0x7ff7e88117fe in std.debug.writeCurrentStackTraceWindows (test.obj)
    const n = windows.ntdll.RtlCaptureStackBackTrace(0, addr_buf.len, @ptrCast(**anyopaque, &addr_buf), null);
                                                    ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\debug.zig:465:45: 0x7ff7e87df0ef in std.debug.writeCurrentStackTrace (test.obj)
        return writeCurrentStackTraceWindows(out_stream, debug_info, tty_config, start_addr);
                                            ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\debug.zig:125:31: 0x7ff7e87d39fc in std.debug.dumpCurrentStackTrace (test.obj)
        writeCurrentStackTrace(stderr, debug_info, detectTTYConfig(), start_addr) catch |err| {
                              ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\os\windows.zig:2013:4: 0x7ff7e87df5ad in std.os.windows.unexpectedError (test.obj)
        std.debug.dumpCurrentStackTrace(null);
                                       ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\os\windows.zig:602:53: 0x7ff7e87d9dd5 in std.os.windows.WriteFile (test.obj)
                else => |err| return unexpectedError(err),
                                                    ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\fs\file.zig:620:37: 0x7ff7e87d9b6c in std.fs.file.File::std.fs.file.File.write (test.obj)
            return windows.WriteFile(self.handle, bytes, null, self.intended_io_mode);
                                    ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\io\writer.zig:17:27: 0x7ff7e87d9ffd in std.io.writer.Writer(std.fs.file.File,std.os.WriteError,std.fs.file.File.write)::std.io.writer.Writer(std.fs.file.File,std.os.WriteError,std.fs.file.File.write).write (test.obj)
            return writeFn(self.context, bytes);
                          ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\io\writer.zig:23:40: 0x7ff7e87d85c1 in std.io.writer.Writer(std.fs.file.File,std.os.WriteError,std.fs.file.File.write)::std.io.writer.Writer(std.fs.file.File,std.os.WriteError,std.fs.file.File.write).writeAll (test.obj)
                index += try self.write(bytes[index..]);
                                       ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\fmt.zig:117:32: 0x7ff7e87d9f11 in std.fmt.format (test.obj)
            try writer.writeAll(fmt[start_index..end_index]);
                               ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\io\writer.zig:28:34: 0x7ff7e87d84a0 in std.io.writer.Writer(std.fs.file.File,std.os.WriteError,std.fs.file.File.write)::std.io.writer.Writer(std.fs.file.File,std.os.WriteError,std.fs.file.File.write).print (test.obj)
            return std.fmt.format(self, format, args);
                                 ^
C:\msys64\home\William\Projects\zig\zls\tests\sessions.zig:39:28: 0x7ff7e87d3157 in Server::Server.request (test.obj)
        try to_server.print("Content-Length: {}\r\n\r\n", .{req.len});
                           ^
C:\msys64\home\William\Projects\zig\zls\tests\sessions.zig:104:21: 0x7ff7e87d33e2 in Server::Server.shutdown (test.obj)
        self.request("shutdown", "{}", null) catch @panic("Could not send shutdown request");
                    ^
C:\msys64\home\William\Projects\zig\zls\tests\sessions.zig:155:26: 0x7ff7e87d188e in test "Open file, ask for semantic tokens" (test.obj)
    defer server.shutdown();
                         ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\special\test_runner.zig:80:28: 0x7ff7e87e544e in std.special.main (test.obj)
        } else test_fn.func();
                           ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\start.zig:551:22: 0x7ff7e87de96e in std.start.callMain (test.obj)
            root.main();
                     ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\start.zig:333:65: 0x7ff7e87d3557 in std.start.WinStartup (test.obj)
    std.os.windows.kernel32.ExitProcess(initEventLoopAndCallMain());
                                                                ^
Unable to dump stack trace: FileNotFound
thread 55540 panic: Could not send shutdown request
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\os\windows.zig:2015:5: 0x7ff7e87df5bf in std.os.windows.unexpectedError (test.obj)
    return error.Unexpected;
    ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\os\windows.zig:602:31: 0x7ff7e87d9de9 in std.os.windows.WriteFile (test.obj)
                else => |err| return unexpectedError(err),
                              ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\fs\file.zig:620:13: 0x7ff7e87d9b80 in std.fs.file.File::std.fs.file.File.write (test.obj)
            return windows.WriteFile(self.handle, bytes, null, self.intended_io_mode);
            ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\io\writer.zig:17:13: 0x7ff7e87da011 in std.io.writer.Writer(std.fs.file.File,std.os.WriteError,std.fs.file.File.write)::std.io.writer.Writer(std.fs.file.File,std.os.WriteError,std.fs.file.File.write).write (test.obj)
            return writeFn(self.context, bytes);
            ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\io\writer.zig:23:26: 0x7ff7e87d8539 in std.io.writer.Writer(std.fs.file.File,std.os.WriteError,std.fs.file.File.write)::std.io.writer.Writer(std.fs.file.File,std.os.WriteError,std.fs.file.File.write).writeAll (test.obj)
                index += try self.write(bytes[index..]);
                         ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\fmt.zig:117:13: 0x7ff7e87d9f30 in std.fmt.format (test.obj)
            try writer.writeAll(fmt[start_index..end_index]);
            ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\io\writer.zig:28:13: 0x7ff7e87d84b3 in std.io.writer.Writer(std.fs.file.File,std.os.WriteError,std.fs.file.File.write)::std.io.writer.Writer(std.fs.file.File,std.os.WriteError,std.fs.file.File.write).print (test.obj)
            return std.fmt.format(self, format, args);
            ^
C:\msys64\home\William\Projects\zig\zls\tests\sessions.zig:39:9: 0x7ff7e87d2970 in Server::Server.request (test.obj)
        try to_server.print("Content-Length: {}\r\n\r\n", .{req.len});
        ^
C:\msys64\home\William\Projects\zig\zls\tests\sessions.zig:104:52: 0x7ff7e87d33fc in Server::Server.shutdown (test.obj)
        self.request("shutdown", "{}", null) catch @panic("Could not send shutdown request");
                                                   ^
C:\msys64\home\William\Projects\zig\zls\tests\sessions.zig:155:26: 0x7ff7e87d188e in test "Open file, ask for semantic tokens" (test.obj)
    defer server.shutdown();
                         ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\special\test_runner.zig:80:28: 0x7ff7e87e544e in std.special.main (test.obj)
        } else test_fn.func();
                           ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\start.zig:551:22: 0x7ff7e87de96e in std.start.callMain (test.obj)
            root.main();
                     ^
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\lib\std\start.zig:333:65: 0x7ff7e87d3557 in std.start.WinStartup (test.obj)
    std.os.windows.kernel32.ExitProcess(initEventLoopAndCallMain());
                                                                ^
Unable to dump stack trace: FileNotFound
error: the following test command failed with exit code 3:
C:\msys64\home\William\Projects\zig\zls\zig-cache\o\2ee54d5fa7e46974b7651551646c51ff\test.exe C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\zig.exe
test...The following command exited with error code 1:
C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\zig.exe test C:\msys64\home\William\Projects\zig\zls\tests\sessions.zig --cache-dir C:\msys64\home\William\Projects\zig\zls\zig-cache --global-cache-dir C:\Users\William\AppData\Local\zig --name test --pkg-begin header C:\msys64\home\William\Projects\zig\zls\src\header.zig --pkg-end --enable-cache
error: the following build command failed with exit code 1:
C:\msys64\home\William\Projects\zig\zls\zig-cache\o\6cbd2e9096cdf91d418012bb658c3023\build.exe C:\Users\William\zig\bin\zig\0.10.0-dev.620+9981b3fd2\files\zig.exe C:\msys64\home\William\Projects\zig\zls C:\msys64\home\William\Projects\zig\zls\zig-cache C:\Users\William\AppData\Local\zig test -Dtarget=x86_64-windows-gnu -Drelease-small

Context

Zig Version

$ zig.exe version
0.10.0-dev.620+9981b3fd2

ZLS Version

https://github.com/zigtools/zls/commit/f3aabd6b7ca424b6aa1be9ef8a215a842301b994

Compile Command Line

zig.exe build [test] -Dtarget=x86_64-windows-gnu -Drelease-small

OS Version

ver

Microsoft Windows [Version 10.0.19044.1466]

Other Context

I don't know if this helps, as the problem disappeared, but I think it's worth mentioning. I've been trying to run zls with Atom 1.58.0, with the Zig language package. Between https://github.com/ziglang/zig/commit/1b6a1e691 and https://github.com/ziglang/zig/commit/9981b3fd2 exclusive, I was getting this when running zls from within Atom:

image

I assumed that the failing test and the restarts were related, but when I recompiled zls tonight with https://github.com/ziglang/zig/commit/9981b3fd2. zls now seems to be working fine from within my editor; just that the test is still failing even with https://github.com/ziglang/zig/commit/9981b3fd2.

zls was running fine when I invoked it manually from a command prompt for all Zig versions I tried. Is it possible to have zls dump its state if the Atom error comes back?

cr1901 avatar Feb 09 '22 04:02 cr1901

Running into this too, quite a pain :(

SuperAuguste avatar Jul 11 '22 16:07 SuperAuguste

@mattnite fixed this iirc! :)

SuperAuguste avatar Nov 16 '22 23:11 SuperAuguste