Open 1ma opened 1 year ago
On noscl@0.6.0. Similar to #21, it happened using noscl publish. It managed to publish the note, though.
noscl publish
fatal error: concurrent map writes goroutine 32 [running]: github.com/fiatjaf/go-nostr.(*RelayPool).Sub(0xc000017050, {0xc00027c960, 0x1, 0x1}) /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:199 +0x36f github.com/fiatjaf/go-nostr.(*RelayPool).PublishEvent.func1({0xc0003d3420, 0x1c}, 0x0?) /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:240 +0x28f created by github.com/fiatjaf/go-nostr.(*RelayPool).PublishEvent /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:232 +0x3fa goroutine 1 [runnable]: main.printPublishStatus(0xc0001ce680, 0xc0001ce680?) /home/user/go/pkg/mod/github.com/1ma/noscl@v0.6.1/printer.go:81 +0x56 main.publish(0x6e6a40?) /home/user/go/pkg/mod/github.com/1ma/noscl@v0.6.1/publish.go:61 +0x649 main.main() /home/user/go/pkg/mod/github.com/1ma/noscl@v0.6.1/main.go:86 +0x465 goroutine 40 [IO wait]: internal/poll.runtime_pollWait(0x7f4acddedf98, 0x72) /usr/local/go/src/runtime/netpoll.go:306 +0x89 internal/poll.(*pollDesc).wait(0xc0001ce000?, 0xc0001e4000?, 0x0) /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 internal/poll.(*pollDesc).waitRead(...) /usr/local/go/src/internal/poll/fd_poll_runtime.go:89 internal/poll.(*FD).Read(0xc0001ce000, {0xc0001e4000, 0x1300, 0x1300}) /usr/local/go/src/internal/poll/fd_unix.go:167 +0x299 net.(*netFD).Read(0xc0001ce000, {0xc0001e4000?, 0x7?, 0x19b?}) /usr/local/go/src/net/fd_posix.go:55 +0x29 net.(*conn).Read(0xc0000a0d48, {0xc0001e4000?, 0xc00004d720?, 0xc00004d708?}) /usr/local/go/src/net/net.go:183 +0x45 crypto/tls.(*atLeastReader).Read(0xc000012b58, {0xc0001e4000?, 0xc000012b58?, 0x0?}) /usr/local/go/src/crypto/tls/conn.go:788 +0x3d bytes.(*Buffer).ReadFrom(0xc0000cb790, {0x8cc840, 0xc000012b58}) /usr/local/go/src/bytes/buffer.go:202 +0x98 crypto/tls.(*Conn).readFromUntil(0xc0000cb500, {0x8ccc40?, 0xc0000a0d48}, 0x1a0?) /usr/local/go/src/crypto/tls/conn.go:810 +0xe5 crypto/tls.(*Conn).readRecordOrCCS(0xc0000cb500, 0x0) /usr/local/go/src/crypto/tls/conn.go:617 +0x116 crypto/tls.(*Conn).readRecord(...) /usr/local/go/src/crypto/tls/conn.go:583 crypto/tls.(*Conn).Read(0xc0000cb500, {0xc000128000, 0x1000, 0x0?}) /usr/local/go/src/crypto/tls/conn.go:1316 +0x16f bufio.(*Reader).fill(0xc0000a33e0) /usr/local/go/src/bufio/bufio.go:106 +0xff bufio.(*Reader).Peek(0xc0000a33e0, 0x2) /usr/local/go/src/bufio/bufio.go:144 +0x5d github.com/gorilla/websocket.(*Conn).read(0xc000306160, 0x0?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:370 +0x2c github.com/gorilla/websocket.(*Conn).advanceFrame(0xc000306160) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:798 +0x7b github.com/gorilla/websocket.(*Conn).NextReader(0xc000306160) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:980 +0xcc github.com/gorilla/websocket.(*Conn).ReadMessage(0x0?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:1064 +0x19 github.com/fiatjaf/go-nostr.(*RelayPool).Add.func1() /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:99 +0x6b created by github.com/fiatjaf/go-nostr.(*RelayPool).Add /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:97 +0x445 goroutine 29 [runnable]: encoding/json.sliceEncoder.encode({0x4b4ba0?}, 0xc0001ce880, {0x6b10c0?, 0xc000012ee8?, 0x6b10c0?}, {0x0?, 0x23?}) /usr/local/go/src/encoding/json/encode.go:887 +0x32f encoding/json.(*encodeState).reflectValue(0xc00020f8e8?, {0x6b10c0?, 0xc000012ee8?, 0xc0001d2048?}, {0x80?, 0xde?}) /usr/local/go/src/encoding/json/encode.go:358 +0x78 encoding/json.(*encodeState).marshal(0x6ed020?, {0x6b10c0?, 0xc000012ee8?}, {0xb8?, 0xc5?}) /usr/local/go/src/encoding/json/encode.go:330 +0xfa encoding/json.(*Encoder).Encode(0xc00020fa10, {0x6b10c0, 0xc000012ee8}) /usr/local/go/src/encoding/json/stream.go:209 +0xf3 github.com/gorilla/websocket.(*Conn).WriteJSON(0xc0001cb0d8?, {0x6b10c0, 0xc000012ee8}) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/json.go:28 +0xc5 github.com/fiatjaf/go-nostr.(*Connection).WriteJSON(0xc0000ced40?, {0x6b10c0?, 0xc000012ee8?}) /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/connection.go:22 +0xb0 github.com/fiatjaf/go-nostr.Subscription.Sub({{0xc0001da270, 0xe}, 0xc000017b60, {0xc0003500c0, 0x1, 0x1}, 0xc000285020, 0x0, 0xc000285080, 0x0}) /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/subscription.go:48 +0x8b github.com/fiatjaf/go-nostr.(*RelayPool).Sub(0xc000017050, {0xc0003500c0, 0x1, 0x1}) /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:201 +0x3b8 github.com/fiatjaf/go-nostr.(*RelayPool).PublishEvent.func1({0xc000294168, 0x16}, 0x5?) /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:240 +0x28f created by github.com/fiatjaf/go-nostr.(*RelayPool).PublishEvent /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:232 +0x3fa goroutine 28 [runnable]: github.com/fiatjaf/go-nostr.(*RelayPool).PublishEvent.func2() /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:232 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 created by github.com/fiatjaf/go-nostr.(*RelayPool).PublishEvent /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:232 +0x3fa goroutine 46 [IO wait]: internal/poll.runtime_pollWait(0x7f4acddeddb8, 0x72) /usr/local/go/src/runtime/netpoll.go:306 +0x89 internal/poll.(*pollDesc).wait(0xc0001ce400?, 0xc00021e000?, 0x0) /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 internal/poll.(*pollDesc).waitRead(...) /usr/local/go/src/internal/poll/fd_poll_runtime.go:89 internal/poll.(*FD).Read(0xc0001ce400, {0xc00021e000, 0x1800, 0x1800}) /usr/local/go/src/internal/poll/fd_unix.go:167 +0x299 net.(*netFD).Read(0xc0001ce400, {0xc00021e000?, 0x7f4ac46a2e18?, 0xc00004f770?}) /usr/local/go/src/net/fd_posix.go:55 +0x29 net.(*conn).Read(0xc000014008, {0xc00021e000?, 0x421f45?, 0xab28e0?}) /usr/local/go/src/net/net.go:183 +0x45 crypto/tls.(*atLeastReader).Read(0xc000012060, {0xc00021e000?, 0xc000012060?, 0x0?}) /usr/local/go/src/crypto/tls/conn.go:788 +0x3d bytes.(*Buffer).ReadFrom(0xc000300610, {0x8cc840, 0xc000012060}) /usr/local/go/src/bytes/buffer.go:202 +0x98 crypto/tls.(*Conn).readFromUntil(0xc000300380, {0x8ccc40?, 0xc000014008}, 0xc0001ce400?) /usr/local/go/src/crypto/tls/conn.go:810 +0xe5 crypto/tls.(*Conn).readRecordOrCCS(0xc000300380, 0x0) /usr/local/go/src/crypto/tls/conn.go:617 +0x116 crypto/tls.(*Conn).readRecord(...) /usr/local/go/src/crypto/tls/conn.go:583 crypto/tls.(*Conn).Read(0xc000300380, {0xc00035e000, 0x1000, 0x0?}) /usr/local/go/src/crypto/tls/conn.go:1316 +0x16f bufio.(*Reader).fill(0xc00027daa0) /usr/local/go/src/bufio/bufio.go:106 +0xff bufio.(*Reader).Peek(0xc00027daa0, 0x2) /usr/local/go/src/bufio/bufio.go:144 +0x5d github.com/gorilla/websocket.(*Conn).read(0xc0002406e0, 0x0?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:370 +0x2c github.com/gorilla/websocket.(*Conn).advanceFrame(0xc0002406e0) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:798 +0x7b github.com/gorilla/websocket.(*Conn).NextReader(0xc0002406e0) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:980 +0xcc github.com/gorilla/websocket.(*Conn).ReadMessage(0x0?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:1064 +0x19 github.com/fiatjaf/go-nostr.(*RelayPool).Add.func1() /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:99 +0x6b created by github.com/fiatjaf/go-nostr.(*RelayPool).Add /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:97 +0x445 goroutine 5 [IO wait]: internal/poll.runtime_pollWait(0x7f4acddedea8, 0x72) /usr/local/go/src/runtime/netpoll.go:306 +0x89 internal/poll.(*pollDesc).wait(0xc0001ce500?, 0xc0001e6600?, 0x0) /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 internal/poll.(*pollDesc).waitRead(...) /usr/local/go/src/internal/poll/fd_poll_runtime.go:89 internal/poll.(*FD).Read(0xc0001ce500, {0xc0001e6600, 0x1300, 0x1300}) /usr/local/go/src/internal/poll/fd_unix.go:167 +0x299 net.(*netFD).Read(0xc0001ce500, {0xc0001e6600?, 0x0?, 0x45c2b8?}) /usr/local/go/src/net/fd_posix.go:55 +0x29 net.(*conn).Read(0xc000014018, {0xc0001e6600?, 0x0?, 0xc00004b700?}) /usr/local/go/src/net/net.go:183 +0x45 crypto/tls.(*atLeastReader).Read(0xc0002ae000, {0xc0001e6600?, 0xc0002ae000?, 0x0?}) /usr/local/go/src/crypto/tls/conn.go:788 +0x3d bytes.(*Buffer).ReadFrom(0xc000300990, {0x8cc840, 0xc0002ae000}) /usr/local/go/src/bytes/buffer.go:202 +0x98 crypto/tls.(*Conn).readFromUntil(0xc000300700, {0x8ccc40?, 0xc000014018}, 0x0?) /usr/local/go/src/crypto/tls/conn.go:810 +0xe5 crypto/tls.(*Conn).readRecordOrCCS(0xc000300700, 0x0) /usr/local/go/src/crypto/tls/conn.go:617 +0x116 crypto/tls.(*Conn).readRecord(...) /usr/local/go/src/crypto/tls/conn.go:583 crypto/tls.(*Conn).Read(0xc000300700, {0xc000156000, 0x1000, 0x0?}) /usr/local/go/src/crypto/tls/conn.go:1316 +0x16f bufio.(*Reader).fill(0xc000283ec0) /usr/local/go/src/bufio/bufio.go:106 +0xff bufio.(*Reader).Peek(0xc000283ec0, 0x2) /usr/local/go/src/bufio/bufio.go:144 +0x5d github.com/gorilla/websocket.(*Conn).read(0xc0003062c0, 0x0?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:370 +0x2c github.com/gorilla/websocket.(*Conn).advanceFrame(0xc0003062c0) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:798 +0x7b github.com/gorilla/websocket.(*Conn).NextReader(0xc0003062c0) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:980 +0xcc github.com/gorilla/websocket.(*Conn).ReadMessage(0x0?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:1064 +0x19 github.com/fiatjaf/go-nostr.(*RelayPool).Add.func1() /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:99 +0x6b created by github.com/fiatjaf/go-nostr.(*RelayPool).Add /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:97 +0x445 goroutine 11 [runnable]: internal/poll.runtime_pollWait(0x7f4acddedbd8, 0x72) /usr/local/go/src/runtime/netpoll.go:306 +0x89 internal/poll.(*pollDesc).wait(0xc000132300?, 0xc00021f800?, 0x0) /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 internal/poll.(*pollDesc).waitRead(...) /usr/local/go/src/internal/poll/fd_poll_runtime.go:89 internal/poll.(*FD).Read(0xc000132300, {0xc00021f800, 0x1800, 0x1800}) /usr/local/go/src/internal/poll/fd_unix.go:167 +0x299 net.(*netFD).Read(0xc000132300, {0xc00021f800?, 0x0?, 0x0?}) /usr/local/go/src/net/fd_posix.go:55 +0x29 net.(*conn).Read(0xc0001d2048, {0xc00021f800?, 0x0?, 0x0?}) /usr/local/go/src/net/net.go:183 +0x45 crypto/tls.(*atLeastReader).Read(0xc00031ef30, {0xc00021f800?, 0xc00031ef30?, 0x0?}) /usr/local/go/src/crypto/tls/conn.go:788 +0x3d bytes.(*Buffer).ReadFrom(0xc0000cb090, {0x8cc840, 0xc00031ef30}) /usr/local/go/src/bytes/buffer.go:202 +0x98 crypto/tls.(*Conn).readFromUntil(0xc0000cae00, {0x8ccc40?, 0xc0001d2048}, 0x0?) /usr/local/go/src/crypto/tls/conn.go:810 +0xe5 crypto/tls.(*Conn).readRecordOrCCS(0xc0000cae00, 0x0) /usr/local/go/src/crypto/tls/conn.go:617 +0x116 crypto/tls.(*Conn).readRecord(...) /usr/local/go/src/crypto/tls/conn.go:583 crypto/tls.(*Conn).Read(0xc0000cae00, {0xc0000f8000, 0x1000, 0x0?}) /usr/local/go/src/crypto/tls/conn.go:1316 +0x16f bufio.(*Reader).fill(0xc0000a3da0) /usr/local/go/src/bufio/bufio.go:106 +0xff bufio.(*Reader).Peek(0xc0000a3da0, 0x2) /usr/local/go/src/bufio/bufio.go:144 +0x5d github.com/gorilla/websocket.(*Conn).read(0xc000306840, 0x0?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:370 +0x2c github.com/gorilla/websocket.(*Conn).advanceFrame(0xc000306840) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:798 +0x7b github.com/gorilla/websocket.(*Conn).NextReader(0xc000306840) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:980 +0xcc github.com/gorilla/websocket.(*Conn).ReadMessage(0x0?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:1064 +0x19 github.com/fiatjaf/go-nostr.(*RelayPool).Add.func1() /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:99 +0x6b created by github.com/fiatjaf/go-nostr.(*RelayPool).Add /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:97 +0x445 goroutine 15 [IO wait]: internal/poll.runtime_pollWait(0x7f4acddedae8, 0x72) /usr/local/go/src/runtime/netpoll.go:306 +0x89 internal/poll.(*pollDesc).wait(0xc0001ce480?, 0xc000221000?, 0x0) /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 internal/poll.(*pollDesc).waitRead(...) /usr/local/go/src/internal/poll/fd_poll_runtime.go:89 internal/poll.(*FD).Read(0xc0001ce480, {0xc000221000, 0x1800, 0x1800}) /usr/local/go/src/internal/poll/fd_unix.go:167 +0x299 net.(*netFD).Read(0xc0001ce480, {0xc000221000?, 0x0?, 0xc00029d770?}) /usr/local/go/src/net/fd_posix.go:55 +0x29 net.(*conn).Read(0xc000014118, {0xc000221000?, 0x0?, 0xc00029d730?}) /usr/local/go/src/net/net.go:183 +0x45 crypto/tls.(*atLeastReader).Read(0xc0002ae048, {0xc000221000?, 0xc0002ae048?, 0x0?}) /usr/local/go/src/crypto/tls/conn.go:788 +0x3d bytes.(*Buffer).ReadFrom(0xc000301410, {0x8cc840, 0xc0002ae048}) /usr/local/go/src/bytes/buffer.go:202 +0x98 crypto/tls.(*Conn).readFromUntil(0xc000301180, {0x8ccc40?, 0xc000014118}, 0xc0001ce480?) /usr/local/go/src/crypto/tls/conn.go:810 +0xe5 crypto/tls.(*Conn).readRecordOrCCS(0xc000301180, 0x0) /usr/local/go/src/crypto/tls/conn.go:617 +0x116 crypto/tls.(*Conn).readRecord(...) /usr/local/go/src/crypto/tls/conn.go:583 crypto/tls.(*Conn).Read(0xc000301180, {0xc000204000, 0x1000, 0xc000014118?}) /usr/local/go/src/crypto/tls/conn.go:1316 +0x16f bufio.(*Reader).fill(0xc0000fde60) /usr/local/go/src/bufio/bufio.go:106 +0xff bufio.(*Reader).Peek(0xc0000fde60, 0x2) /usr/local/go/src/bufio/bufio.go:144 +0x5d github.com/gorilla/websocket.(*Conn).read(0xc000306c60, 0x415234?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:370 +0x2c github.com/gorilla/websocket.(*Conn).advanceFrame(0xc000306c60) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:798 +0x7b github.com/gorilla/websocket.(*Conn).NextReader(0xc000306c60) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:980 +0xcc github.com/gorilla/websocket.(*Conn).ReadMessage(0xc00029def8?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:1064 +0x19 github.com/fiatjaf/go-nostr.(*RelayPool).Add.func1() /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:99 +0x6b created by github.com/fiatjaf/go-nostr.(*RelayPool).Add /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:97 +0x445 goroutine 27 [runnable]: strconv.appendEscapedRune({0xc000384700, 0x10a, 0x301}, 0x6e, 0x22?, 0x0?, 0x0) /usr/local/go/src/strconv/quote.go:68 +0x71b strconv.appendQuotedWith({0xc00035c140?, 0x8f?, 0x6e8600?}, {0xc000226280, 0x270}, 0x22, 0x0?, 0x0?) /usr/local/go/src/strconv/quote.go:52 +0x31a strconv.AppendQuote(...) /usr/local/go/src/strconv/quote.go:135 github.com/valyala/fastjson.escapeString({0xc00035c140, 0x8f, 0xa0}, {0xc000226280, 0x270}) /home/user/go/pkg/mod/github.com/valyala/fastjson@v1.6.3/parser.go:279 +0x14a github.com/valyala/fastjson.(*Arena).NewString(0xc00012a600, {0xc000226280?, 0x0?}) /home/user/go/pkg/mod/github.com/valyala/fastjson@v1.6.3/arena.go:62 +0x150 github.com/fiatjaf/go-nostr.Event.MarshalJSON({{0xc0000c50c0, 0x40}, {0xc0000c4780, 0x40}, {0xc0fe011416f42db6, 0x73722fe4, 0xa82680}, 0x1, {0x0, 0x0, ...}, ...}) /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/event_aux.go:123 +0x245 encoding/json.marshalerEncoder(0xc0004c6280, {0x6dc9e0?, 0xc0001ce680?, 0xc00012a808?}, {0x92?, 0xc9?}) /usr/local/go/src/encoding/json/encode.go:477 +0xbe encoding/json.(*encodeState).reflectValue(0x6bc8c0?, {0x6dc9e0?, 0xc0001ce680?, 0xc00012a860?}, {0x32?, 0x5c?}) /usr/local/go/src/encoding/json/encode.go:358 +0x78 encoding/json.interfaceEncoder(0xc0004c6280, {0x6bc8c0?, 0xc0000b60f0?, 0x6b4b20?}, {0xc0?, 0xe6?}) /usr/local/go/src/encoding/json/encode.go:714 +0xc8 encoding/json.arrayEncoder.encode({0x4?}, 0xc0004c6280, {0x6b10c0?, 0xc00031ef78?, 0xc0001012a0?}, {0x4?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:914 +0xd5 encoding/json.sliceEncoder.encode({0x416890?}, 0xc0004c6280, {0x6b10c0?, 0xc00031ef78?, 0xc00012aab0?}, {0x0?, 0xa2?}) /usr/local/go/src/encoding/json/encode.go:887 +0x32f encoding/json.typeEncoder.func1(0x6b10c0?, {0x6b10c0?, 0xc00031ef78?, 0xc0004c6280?}, {0x80?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:395 +0x85 encoding/json.(*encodeState).reflectValue(0xc0004c6280?, {0x6b10c0?, 0xc00031ef78?, 0x40ed47?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:358 +0x78 encoding/json.(*encodeState).marshal(0x1e?, {0x6b10c0?, 0xc00031ef78?}, {0x68?, 0xca?}) /usr/local/go/src/encoding/json/encode.go:330 +0xfa encoding/json.(*Encoder).Encode(0xc00012aca8, {0x6b10c0, 0xc00031ef78}) /usr/local/go/src/encoding/json/stream.go:209 +0xf3 github.com/gorilla/websocket.(*Conn).WriteJSON(0x7f4acd4fd718?, {0x6b10c0, 0xc00031ef78}) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/json.go:28 +0xc5 github.com/fiatjaf/go-nostr.(*Connection).WriteJSON(0xc0000b60e0?, {0x6b10c0?, 0xc00031ef78?}) /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/connection.go:22 +0xb0 github.com/fiatjaf/go-nostr.(*RelayPool).PublishEvent.func1({0xc00027e0a0, 0x1c}, 0x4?) /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:233 +0xce created by github.com/fiatjaf/go-nostr.(*RelayPool).PublishEvent /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:232 +0x3fa goroutine 52 [runnable]: internal/poll.runtime_pollWait(0x7f4acddedcc8, 0x72) /usr/local/go/src/runtime/netpoll.go:306 +0x89 internal/poll.(*pollDesc).wait(0xc0004c6180?, 0xc000244000?, 0x0) /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 internal/poll.(*pollDesc).waitRead(...) /usr/local/go/src/internal/poll/fd_poll_runtime.go:89 internal/poll.(*FD).Read(0xc0004c6180, {0xc000244000, 0x1300, 0x1300}) /usr/local/go/src/internal/poll/fd_unix.go:167 +0x299 net.(*netFD).Read(0xc0004c6180, {0xc000244000?, 0x6b4b20?, 0xc00007ec50?}) /usr/local/go/src/net/fd_posix.go:55 +0x29 net.(*conn).Read(0xc000014190, {0xc000244000?, 0xc000101bc0?, 0x4?}) /usr/local/go/src/net/net.go:183 +0x45 crypto/tls.(*atLeastReader).Read(0xc00031ef60, {0xc000244000?, 0xc00031ef60?, 0x0?}) /usr/local/go/src/crypto/tls/conn.go:788 +0x3d bytes.(*Buffer).ReadFrom(0xc000301b10, {0x8cc840, 0xc00031ef60}) /usr/local/go/src/bytes/buffer.go:202 +0x98 crypto/tls.(*Conn).readFromUntil(0xc000301880, {0x8ccc40?, 0xc000014190}, 0x0?) /usr/local/go/src/crypto/tls/conn.go:810 +0xe5 crypto/tls.(*Conn).readRecordOrCCS(0xc000301880, 0x0) /usr/local/go/src/crypto/tls/conn.go:617 +0x116 crypto/tls.(*Conn).readRecord(...) /usr/local/go/src/crypto/tls/conn.go:583 crypto/tls.(*Conn).Read(0xc000301880, {0xc00034e000, 0x1000, 0x4?}) /usr/local/go/src/crypto/tls/conn.go:1316 +0x16f bufio.(*Reader).fill(0xc000207e60) /usr/local/go/src/bufio/bufio.go:106 +0xff bufio.(*Reader).Peek(0xc000207e60, 0x2) /usr/local/go/src/bufio/bufio.go:144 +0x5d github.com/gorilla/websocket.(*Conn).read(0xc000307080, 0x6b4b20?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:370 +0x2c github.com/gorilla/websocket.(*Conn).advanceFrame(0xc000307080) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:798 +0x7b github.com/gorilla/websocket.(*Conn).NextReader(0xc000307080) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:980 +0xcc github.com/gorilla/websocket.(*Conn).ReadMessage(0x0?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:1064 +0x19 github.com/fiatjaf/go-nostr.(*RelayPool).Add.func1() /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:99 +0x6b created by github.com/fiatjaf/go-nostr.(*RelayPool).Add /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:97 +0x445 goroutine 25 [runnable]: internal/poll.runtime_pollWait(0x7f4acdded908, 0x72) /usr/local/go/src/runtime/netpoll.go:306 +0x89 internal/poll.(*pollDesc).wait(0xc000132580?, 0xc0002b4000?, 0x0) /usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 internal/poll.(*pollDesc).waitRead(...) /usr/local/go/src/internal/poll/fd_poll_runtime.go:89 internal/poll.(*FD).Read(0xc000132580, {0xc0002b4000, 0x1500, 0x1500}) /usr/local/go/src/internal/poll/fd_unix.go:167 +0x299 net.(*netFD).Read(0xc000132580, {0xc0002b4000?, 0x30847c40384080a?, 0x2f6bb68000f7683?}) /usr/local/go/src/net/fd_posix.go:55 +0x29 net.(*conn).Read(0xc0000a0050, {0xc0002b4000?, 0xcd9f6d033fd675?, 0x211a87702767371?}) /usr/local/go/src/net/net.go:183 +0x45 crypto/tls.(*atLeastReader).Read(0xc000012e40, {0xc0002b4000?, 0xc000012e40?, 0x0?}) /usr/local/go/src/crypto/tls/conn.go:788 +0x3d bytes.(*Buffer).ReadFrom(0xc00028c290, {0x8cc840, 0xc000012e40}) /usr/local/go/src/bytes/buffer.go:202 +0x98 crypto/tls.(*Conn).readFromUntil(0xc00028c000, {0x8ccc40?, 0xc0000a0050}, 0x186e95500e2115e?) /usr/local/go/src/crypto/tls/conn.go:810 +0xe5 crypto/tls.(*Conn).readRecordOrCCS(0xc00028c000, 0x0) /usr/local/go/src/crypto/tls/conn.go:617 +0x116 crypto/tls.(*Conn).readRecord(...) /usr/local/go/src/crypto/tls/conn.go:583 crypto/tls.(*Conn).Read(0xc00028c000, {0xc0002e8000, 0x1000, 0xf1271903316ff4?}) /usr/local/go/src/crypto/tls/conn.go:1316 +0x16f bufio.(*Reader).fill(0xc0002e4180) /usr/local/go/src/bufio/bufio.go:106 +0xff bufio.(*Reader).Peek(0xc0002e4180, 0x2) /usr/local/go/src/bufio/bufio.go:144 +0x5d github.com/gorilla/websocket.(*Conn).read(0xc000240160, 0x38eb2c3023c6f3b?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:370 +0x2c github.com/gorilla/websocket.(*Conn).advanceFrame(0xc000240160) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:798 +0x7b github.com/gorilla/websocket.(*Conn).NextReader(0xc000240160) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:980 +0xcc github.com/gorilla/websocket.(*Conn).ReadMessage(0x0?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:1064 +0x19 github.com/fiatjaf/go-nostr.(*RelayPool).Add.func1() /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:99 +0x6b created by github.com/fiatjaf/go-nostr.(*RelayPool).Add /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:97 +0x445 goroutine 26 [chan receive]: main.initNostr.func1() /home/user/go/pkg/mod/github.com/1ma/noscl@v0.6.1/nostr.go:29 +0xc5 created by main.initNostr /home/user/go/pkg/mod/github.com/1ma/noscl@v0.6.1/nostr.go:28 +0x289 goroutine 30 [runnable]: sync.runtime_Semacquire(0xc000014210?) /usr/local/go/src/runtime/sema.go:62 +0x27 sync.(*WaitGroup).Wait(0x6b10c0?) /usr/local/go/src/sync/waitgroup.go:116 +0x4b encoding/json.typeEncoder.func1(0x6b10c0?, {0x6b10c0?, 0xc0002ae3a8?, 0xc0001ce800?}, {0x80?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:394 +0x55 encoding/json.(*encodeState).reflectValue(0xc0001ce800?, {0x6b10c0?, 0xc0002ae3a8?, 0x40ed47?}, {0x78?, 0x0?}) /usr/local/go/src/encoding/json/encode.go:358 +0x78 encoding/json.(*encodeState).marshal(0x6ed020?, {0x6b10c0?, 0xc0002ae3a8?}, {0xb8?, 0xc5?}) /usr/local/go/src/encoding/json/encode.go:330 +0xfa encoding/json.(*Encoder).Encode(0xc00029cca8, {0x6b10c0, 0xc0002ae3a8}) /usr/local/go/src/encoding/json/stream.go:209 +0xf3 github.com/gorilla/websocket.(*Conn).WriteJSON(0x7f4ac46a09d8?, {0x6b10c0, 0xc0002ae3a8}) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/json.go:28 +0xc5 github.com/fiatjaf/go-nostr.(*Connection).WriteJSON(0xc0001e28c0?, {0x6b10c0?, 0xc0002ae3a8?}) /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/connection.go:22 +0xb0 github.com/fiatjaf/go-nostr.(*RelayPool).PublishEvent.func1({0xc0002943a8, 0x18}, 0x1?) /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:233 +0xce created by github.com/fiatjaf/go-nostr.(*RelayPool).PublishEvent /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:232 +0x3fa goroutine 31 [chan send]: github.com/fiatjaf/go-nostr.(*RelayPool).PublishEvent.func1({0xc0000abae0, 0xd}, 0x0?) /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:238 +0x208 created by github.com/fiatjaf/go-nostr.(*RelayPool).PublishEvent /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:232 +0x3fa goroutine 33 [runnable]: syscall.Syscall(0xc000492480?, 0xc00020b938?, 0x4b3812?, 0x7ffff80000000000?) /usr/local/go/src/syscall/syscall_linux.go:69 +0x27 syscall.write(0xc0001ce000?, {0xc000492480?, 0xc000492400?, 0x416890?}) /usr/local/go/src/syscall/zsyscall_linux_amd64.go:939 +0x45 syscall.Write(...) /usr/local/go/src/syscall/syscall_unix.go:206 internal/poll.ignoringEINTRIO(...) /usr/local/go/src/internal/poll/fd_unix.go:794 internal/poll.(*FD).Write(0xc0001ce000, {0xc000492480, 0x429, 0x480}) /usr/local/go/src/internal/poll/fd_unix.go:383 +0x385 net.(*netFD).Write(0xc0001ce000, {0xc000492480?, 0x40e430?, 0x6d95e0?}) /usr/local/go/src/net/fd_posix.go:96 +0x29 net.(*conn).Write(0xc0000a0d48, {0xc000492480?, 0xc000040c00?, 0xc000330018?}) /usr/local/go/src/net/net.go:195 +0x45 crypto/tls.(*Conn).write(0xc0000cb500, {0xc000492480?, 0x5?, 0x5?}) /usr/local/go/src/crypto/tls/conn.go:923 +0x10d crypto/tls.(*Conn).writeRecordLocked(0xc0000cb500, 0x17, {0xc0001e5306, 0x413, 0x1008}) /usr/local/go/src/crypto/tls/conn.go:991 +0x354 crypto/tls.(*Conn).Write(0x1000000000078?, {0xc0001e5306, 0x413, 0x1008}) /usr/local/go/src/crypto/tls/conn.go:1186 +0x411 github.com/gorilla/websocket.(*Conn).write(0xc000306160, 0x1, {0xab1850?, 0x3?, 0x0?}, {0xc0001e5306, 0x413, 0x1008}, {0x0, 0x0, ...}) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:391 +0x1a4 github.com/gorilla/websocket.(*messageWriter).flushFrame(0xc00019ee40, 0x1, {0x0?, 0x0?, 0x0?}) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:614 +0x3e5 github.com/gorilla/websocket.(*messageWriter).Close(0xc00020bca8?) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/conn.go:724 +0x45 github.com/gorilla/websocket.(*Conn).WriteJSON(0x7f4ac46a09d8?, {0x6b10c0, 0xc0002ae378}) /home/user/go/pkg/mod/github.com/gorilla/websocket@v1.4.2/json.go:29 +0xdf github.com/fiatjaf/go-nostr.(*Connection).WriteJSON(0xc0001e28a0?, {0x6b10c0?, 0xc0002ae378?}) /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/connection.go:22 +0xb0 github.com/fiatjaf/go-nostr.(*RelayPool).PublishEvent.func1({0xc00001aeb0, 0xf}, 0x0?) /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:233 +0xce created by github.com/fiatjaf/go-nostr.(*RelayPool).PublishEvent /home/user/go/pkg/mod/github.com/fiatjaf/go-nostr@v0.6.2/relaypool.go:232 +0x3fa
Looks like the bug is actually in the since-removed relay pool in github.com/fiatjaf/go-nostr v0.6.2. This is likely blocked by #40
github.com/fiatjaf/go-nostr v0.6.2
On noscl@0.6.0. Similar to #21, it happened using
noscl publish
. It managed to publish the note, though.