neurocyte / flow

Flow Control: a programmer's text editor
MIT License
226 stars 10 forks source link

Integer overflow when showing help in macos #7

Closed josei closed 2 months ago

josei commented 2 months ago

Showing help by pressing h produces this error in stderr (help shows up for a moment, then the program crashes):

thread 1140655 panic: integer overflow
/Users/jose/Code/flow/.cache/zig/zig-macos-aarch64-0.12.0/lib/std/Thread/Condition.zig:238:49: 0x1018c56ef in wait (flow)
                        const new_state = state - one_waiter;
                                                ^
/Users/jose/Code/flow/.cache/zig/zig-macos-aarch64-0.12.0/lib/std/Thread/Condition.zig:93:26: 0x1018aabbf in timedWait (flow)
    return self.impl.wait(mutex, timeout_ns);
                         ^
/Users/jose/.cache/zig/p/1220c1a9edb1713b87899f1de8ee4b83a4d2fd4a5e052429c6cfcf7aa0d4870019b3/src/thespian.zig:718:28: 0x101882c1b in call (flow)
        self.cond.timedWait(&self.mut, timeout_ns) catch |e| switch (e) {
                           ^
/Users/jose/.cache/zig/p/1220c1a9edb1713b87899f1de8ee4b83a4d2fd4a5e052429c6cfcf7aa0d4870019b3/src/thespian.zig:75:36: 0x10183fb2b in call__anon_25929 (flow)
            return CallContext.call(a, self.ref(), timeout_ns, message.fmt(request));
                                   ^
/Users/jose/Code/flow/src/LSP.zig:36:25: 0x10187e44b in send_request__anon_26352 (flow)
    return self.pid.call(a, std.time.ns_per_s / 2, .{ "REQ", method, cb.items }) catch |e| return tp.exit_error(e);
                        ^
/Users/jose/Code/flow/src/Project.zig:617:28: 0x10183e817 in send_lsp_init_request (flow)
    return lsp.send_request(self.a, "initialize", .{
                           ^
/Users/jose/Code/flow/src/Project.zig:97:52: 0x10183e227 in get_lsp (flow)
    const response = try self.send_lsp_init_request(lsp, self.name, basename, uri);
                                                   ^
/Users/jose/Code/flow/src/Project.zig:256:29: 0x1018007d7 in did_open (flow)
    const lsp = self.get_lsp(language_server) catch |e| return tp.exit_error(e);
                            ^
/Users/jose/Code/flow/src/project_manager.zig:273:32: 0x1017a69cf in did_open (flow)
        return project.did_open(file_path, file_type, language_server, version, text);
                               ^
/Users/jose/Code/flow/src/project_manager.zig:209:26: 0x10175c2af in receive_safe (flow)
            self.did_open(project_directory, path, file_type, language_server, version, text) catch |e| return from.forward_error(e);
                         ^
/Users/jose/Code/flow/src/project_manager.zig:156:26: 0x10170315b in receive (flow)
        self.receive_safe(from, m) catch |e| {
                         ^
/Users/jose/.cache/zig/p/1220c1a9edb1713b87899f1de8ee4b83a4d2fd4a5e052429c6cfcf7aa0d4870019b3/src/thespian.zig:448:37: 0x1017a8533 in run (flow)
            return to_result(state.f(state.data, wrap_handle(from), message.from(m)));
                                    ^
???:?:?: 0x100e87a53 in __ZNSt3__110__function6__funcIZ16thespian_receiveE3$_0NS_9allocatorIS2_EEFNSt12experimental15fundamentals_v38expectedIvN4cbor6bufferEEEN8thespian6handleES9_EEclEOSC_OS9_ (???)
???:?:?: 0xd26000195825d33 in ??? (???)

Attempting to open a file produces the same result.

Compiled with ./zig build -Duse_system_notcurses=true --search-prefix /opt/homebrew on macOS 14.4.1, notcurses 3.0.9, zig 0.12.0.

neurocyte commented 2 months ago

What commit are you on? This should be fixed by 3e203c22f21ddd87664e8b8d5b5fc5f34fb4021e.

Please update and try again.

josei commented 2 months ago

Thanks, git-pulled and it's now working.