Closed mattn closed 6 months ago
latest commit in zig-0.11 branch might have issue about access violation. But this possibly be my bug.
["REQ",":1",{"kinds":[1]}] select id, pubkey, created_at, kind, tags, content, sig from event where kind in ($1) order by created_at desc limit 500 ["REQ",":1",{"kinds":[1]}] select id, pubkey, created_at, kind, tags, content, sig from event where kind in ($1) order by created_at desc limit 500 thread 881242 panic: index out of bounds: index 16856, len 16645 /usr/local/zig-0.11.0/lib/std/crypto/tls/Client.zig:1251:81: 0x37cb12 in finishRead2 (zig-nostr-relay) @memcpy(c.partially_read_buffer[c.partial_ciphertext_idx + first.len ..][0..frag1.len], frag1); ^ /usr/local/zig-0.11.0/lib/std/crypto/tls/Client.zig:1071:35: 0x376e95 in readvAdvanced__anon_6330 (zig-nostr-relay) return finishRead2(c, first, frag1, vp.total); ^ /usr/local/zig-0.11.0/lib/std/crypto/tls/Client.zig:900:38: 0x3830cc in readvAtLeast__anon_6329 (zig-nostr-relay) var amt = try c.readvAdvanced(stream, iovecs[vec_i..]); ^ /usr/local/zig-0.11.0/lib/std/crypto/tls/Client.zig:861:24: 0x383562 in readAtLeast__anon_6327 (zig-nostr-relay) return readvAtLeast(c, stream, &iovecs, len); ^ /usr/local/zig-0.11.0/lib/std/crypto/tls/Client.zig:866:23: 0x3835f4 in read__anon_6326 (zig-nostr-relay) return readAtLeast(c, stream, buffer, 1); ^ /home/mattn/.cache/zig/p/1220e19021af49c72e97c814e317aa0e567c655fdb42fa725d0c7f8a3046506df151/src/stream.zig:30:26: 0x383705 in read (zig-nostr-relay) return tls_client.read(self.stream, buf); ^ /home/mattn/.cache/zig/p/1220e19021af49c72e97c814e317aa0e567c655fdb42fa725d0c7f8a3046506df151/src/reader.zig:213:30: 0x384674 in read (zig-nostr-relay) const n = try stream.read(buf[pos..]); ^ /home/mattn/.cache/zig/p/1220e19021af49c72e97c814e317aa0e567c655fdb42fa725d0c7f8a3046506df151/src/reader.zig:140:51: 0x384fe8 in next (zig-nostr-relay) return self.buffered(self.pos) orelse self.read(); ^ /home/mattn/.cache/zig/p/1220e19021af49c72e97c814e317aa0e567c655fdb42fa725d0c7f8a3046506df151/src/conn.zig:476:27: 0x3850e2 in read (zig-nostr-relay) const msg = reader.next() catch |err| { ^ /home/mattn/.cache/zig/p/1220e19021af49c72e97c814e317aa0e567c655fdb42fa725d0c7f8a3046506df151/src/result.zig:75:34: 0x566a09 in next (zig-nostr-relay) const msg = try self._conn.read(); ^ /home/mattn/dev/zig-nostr-relay/src/main.zig:733:28: 0x5695ba in handleReq (zig-nostr-relay) while (try res.next()) |row| { ^ /home/mattn/dev/zig-nostr-relay/src/main.zig:788:31: 0x56c45c in handleText (zig-nostr-relay) try self.handleReq(parsed.value); ^ /home/mattn/dev/zig-nostr-relay/src/main.zig:808:41: 0x56cf1d in handle (zig-nostr-relay) .text => try self.handleText(message), ^ /home/mattn/.cache/zig/p/1220361c4b45f9dbffa9972997298b9137741ac2ad67a41a38396e9d27e734e52128/src/server.zig:238:18: 0x56d927 in readLoop__anon_162152 (zig-nostr-relay) try h.handle(message); ^ /home/mattn/.cache/zig/p/1220361c4b45f9dbffa9972997298b9137741ac2ad67a41a38396e9d27e734e52128/src/server.zig:133:15: 0x4c6c6d in clientLoop__anon_61413 (zig-nostr-relay) conn.readLoop(*H, &handler, &reader) catch {}; ^ /usr/local/zig-0.11.0/lib/std/Thread.zig:412:13: 0x45418c in callFn__anon_57975 (zig-nostr-relay) @call(.auto, f, args); ^ /usr/local/zig-0.11.0/lib/std/Thread.zig:1210:30: 0x3d05d3 in entryFn (zig-nostr-relay) return callFn(f, self.fn_args); ^ /usr/local/zig-0.11.0/lib/c.zig:239:13: 0x6bdf60 in clone (c) asm volatile ( ^ ???:?:?: 0xfff in ??? (???) Unwind information for `???:0xfff` was not available, trace may be incomplete
https://github.com/mattn/zig-nostr-relay/blob/f0df269eec07d01bf1c07a603b0efa382c231786/src/main.zig#L742
That's a known bug in Zig's standard library. Been around for a while: https://github.com/ziglang/zig/issues/15226
Now I understand your said in previous issue.
TLS 1.3 and (b) is very buggy
Hmm
latest commit in zig-0.11 branch might have issue about access violation. But this possibly be my bug.
https://github.com/mattn/zig-nostr-relay/blob/f0df269eec07d01bf1c07a603b0efa382c231786/src/main.zig#L742