Concurrent map access
Closed this issue · 0 comments
gempir commented
fatal error: concurrent map read and map write
goroutine 1862474 [running]:
runtime.throw({0x71e344, 0x10})
/usr/local/go/src/runtime/panic.go:1198 +0x71 fp=0xc000a3f478 sp=0xc000a3f448 pc=0x433071
runtime.mapaccess2_faststr(0x6c3be0, 0xc0001bc8d0, {0xc000018a50, 0x9})
/usr/local/go/src/runtime/map_faststr.go:116 +0x3d4 fp=0xc000a3f4e0 sp=0xc000a3f478 pc=0x412414
github.com/gempir/justlog/helix.(*Client).GetUsersByUserIds(0xc00001a480, {0xc00014f500, 0x10d, 0x30})
/app/helix/user.go:150 +0x21b fp=0xc000a3f788 sp=0xc000a3f4e0 pc=0x682f9b
github.com/gempir/justlog/api.(*Server).writeAllChannels(0xc0001e0060, {0x12cefa0, 0xc000152380}, 0xc000c3e160)
/app/api/server.go:285 +0x9f fp=0xc000a3f910 sp=0xc000a3f788 pc=0x68c21f
github.com/gempir/justlog/api.(*Server).route(0xc0001e0060, {0x12cefa0, 0xc000152380}, 0xc000903900)
/app/api/server.go:130 +0x1e5 fp=0xc000a3f960 sp=0xc000a3f910 pc=0x68b0a5
github.com/gempir/justlog/api.(*Server).route-fm({0x12cefa0, 0xc000152380}, 0xc000c3e160)
/app/api/server.go:114 +0x3c fp=0xc000a3f990 sp=0xc000a3f960 pc=0x68eebc
net/http.HandlerFunc.ServeHTTP(0x6ed480, {0x12cefa0, 0xc000152380}, 0x1b)
/usr/local/go/src/net/http/server.go:2046 +0x2f fp=0xc000a3f9b8 sp=0xc000a3f990 pc=0x62b72f
github.com/gempir/justlog/api.corsHandler.func1({0x12cefa0, 0xc000152380}, 0xc000903900)
/app/api/server.go:249 +0x33d fp=0xc000a3fa48 sp=0xc000a3f9b8 pc=0x68c13d
net/http.HandlerFunc.ServeHTTP(0x0, {0x12cefa0, 0xc000152380}, 0x0)
/usr/local/go/src/net/http/server.go:2046 +0x2f fp=0xc000a3fa70 sp=0xc000a3fa48 pc=0x62b72f
net/http.(*ServeMux).ServeHTTP(0x0, {0x12cefa0, 0xc000152380}, 0xc000903900)
/usr/local/go/src/net/http/server.go:2424 +0x149 fp=0xc000a3fac0 sp=0xc000a3fa70 pc=0x62d029
net/http.serverHandler.ServeHTTP({0xc0003ef860}, {0x12cefa0, 0xc000152380}, 0xc000903900)
/usr/local/go/src/net/http/server.go:2878 +0x43b fp=0xc000a3fb80 sp=0xc000a3fac0 pc=0x62e35b
net/http.(*conn).serve(0xc00048f040, {0x12d0420, 0xc0004d2330})
/usr/local/go/src/net/http/server.go:1929 +0xb08 fp=0xc000a3ffb8 sp=0xc000a3fb80 pc=0x62aa88
net/http.(*Server).Serve·dwrap·87()
/usr/local/go/src/net/http/server.go:3033 +0x2e fp=0xc000a3ffe0 sp=0xc000a3ffb8 pc=0x62ecae
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc000a3ffe8 sp=0xc000a3ffe0 pc=0x462181
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:3033 +0x4e8
goroutine 1 [select]:
github.com/gempir/go-twitch-irc/v2.(*Client).startParser(0xc000172480)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:904 +0xa5
github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection(0xc000172480, 0xa, 0x1)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:747 +0x326
github.com/gempir/go-twitch-irc/v2.(*Client).Connect(0xc000172480)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:695 +0x14d
github.com/gempir/justlog/bot.(*Bot).Connect(0xc0000ae100)
/app/bot/main.go:66 +0x138
main.main()
/app/main.go:40 +0x485
goroutine 36 [chan send, 188 minutes]:
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).fillThrottle(...)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:56
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).Start(0xc0001c9820)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:46 +0x65
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:727 +0x1fd
goroutine 20 [IO wait]:
internal/poll.runtime_pollWait(0x7f5ecdf32ee0, 0x72)
/usr/local/go/src/runtime/netpoll.go:234 +0x89
internal/poll.(*pollDesc).wait(0xc000208080, 0xc000023800, 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).Accept(0xc000208080)
/usr/local/go/src/internal/poll/fd_unix.go:402 +0x22c
net.(*netFD).accept(0xc000208080)
/usr/local/go/src/net/fd_unix.go:173 +0x35
net.(*TCPListener).accept(0xc0002e3470)
/usr/local/go/src/net/tcpsock_posix.go:140 +0x28
net.(*TCPListener).Accept(0xc0002e3470)
/usr/local/go/src/net/tcpsock.go:262 +0x3d
net/http.(*Server).Serve(0xc0001b8000, {0x12cedc0, 0xc0002e3470})
/usr/local/go/src/net/http/server.go:3001 +0x394
net/http.(*Server).ListenAndServe(0xc0001b8000)
/usr/local/go/src/net/http/server.go:2930 +0x7d
net/http.ListenAndServe(...)
/usr/local/go/src/net/http/server.go:3184
github.com/gempir/justlog/api.(*Server).Init(0xc0001e0060)
/app/api/server.go:111 +0x12f
created by main.main
/app/main.go:38 +0x477
goroutine 65 [chan receive, 188 minutes]:
github.com/gempir/justlog/helix.(*Client).StartRefreshTokenRoutine(0xc00001a480)
/app/helix/user.go:83 +0x65
created by main.main
/app/main.go:28 +0x22f
goroutine 85 [IO wait]:
internal/poll.runtime_pollWait(0x7f5ecdf32a58, 0x72)
/usr/local/go/src/runtime/netpoll.go:234 +0x89
internal/poll.(*pollDesc).wait(0xc0003ec100, 0xc00073e000, 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(0xc0003ec100, {0xc00073e000, 0xa134, 0xa134})
/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc0003ec100, {0xc00073e000, 0xc00073e00d, 0x186})
/usr/local/go/src/net/fd_posix.go:56 +0x29
net.(*conn).Read(0xc0002a0008, {0xc00073e000, 0xa127, 0xc0004a67c0})
/usr/local/go/src/net/net.go:183 +0x45
crypto/tls.(*atLeastReader).Read(0xc001bf9740, {0xc00073e000, 0x0, 0x40972d})
/usr/local/go/src/crypto/tls/conn.go:777 +0x3d
bytes.(*Buffer).ReadFrom(0xc000308278, {0x12c88c0, 0xc001bf9740})
/usr/local/go/src/bytes/buffer.go:204 +0x98
crypto/tls.(*Conn).readFromUntil(0xc000308000, {0x12c8e00, 0xc0002a0008}, 0xa134)
/usr/local/go/src/crypto/tls/conn.go:799 +0xe5
crypto/tls.(*Conn).readRecordOrCCS(0xc000308000, 0x0)
/usr/local/go/src/crypto/tls/conn.go:606 +0x112
crypto/tls.(*Conn).readRecord(...)
/usr/local/go/src/crypto/tls/conn.go:574
crypto/tls.(*Conn).Read(0xc000308000, {0xc0004b4000, 0x1000, 0xc0004a6cb8})
/usr/local/go/src/crypto/tls/conn.go:1277 +0x16f
bufio.(*Reader).fill(0xc0004a6f40)
/usr/local/go/src/bufio/bufio.go:101 +0x103
bufio.(*Reader).ReadSlice(0xc0004a6f40, 0x81)
/usr/local/go/src/bufio/bufio.go:360 +0x2f
bufio.(*Reader).ReadLine(0xc0004a6f40)
/usr/local/go/src/bufio/bufio.go:389 +0x27
net/textproto.(*Reader).readLineSlice(0xc0004a6ec0)
/usr/local/go/src/net/textproto/reader.go:57 +0x99
net/textproto.(*Reader).ReadLine(...)
/usr/local/go/src/net/textproto/reader.go:38
github.com/gempir/go-twitch-irc/v2.(*Client).startReader(0xc000172a80, {0x7f5ecde55b08, 0xc000308000}, 0x0)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:800 +0x24d
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:725 +0x1a7
goroutine 76 [IO wait]:
internal/poll.runtime_pollWait(0x7f5ecdf32c28, 0x72)
/usr/local/go/src/runtime/netpoll.go:234 +0x89
internal/poll.(*pollDesc).wait(0xc00026c100, 0xc0002f7800, 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(0xc00026c100, {0xc0002f7800, 0x35fe, 0x35fe})
/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc00026c100, {0xc0002f7800, 0xc0002f780d, 0x1ec})
/usr/local/go/src/net/fd_posix.go:56 +0x29
net.(*conn).Read(0xc0002a0010, {0xc0002f7800, 0x35f1, 0xc0004a27c0})
/usr/local/go/src/net/net.go:183 +0x45
crypto/tls.(*atLeastReader).Read(0xc001bf96f8, {0xc0002f7800, 0x0, 0x40972d})
/usr/local/go/src/crypto/tls/conn.go:777 +0x3d
bytes.(*Buffer).ReadFrom(0xc0003085f8, {0x12c88c0, 0xc001bf96f8})
/usr/local/go/src/bytes/buffer.go:204 +0x98
crypto/tls.(*Conn).readFromUntil(0xc000308380, {0x12c8e00, 0xc0002a0010}, 0x35fe)
/usr/local/go/src/crypto/tls/conn.go:799 +0xe5
crypto/tls.(*Conn).readRecordOrCCS(0xc000308380, 0x0)
/usr/local/go/src/crypto/tls/conn.go:606 +0x112
crypto/tls.(*Conn).readRecord(...)
/usr/local/go/src/crypto/tls/conn.go:574
crypto/tls.(*Conn).Read(0xc000308380, {0xc000616000, 0x1000, 0xc0004a2cb8})
/usr/local/go/src/crypto/tls/conn.go:1277 +0x16f
bufio.(*Reader).fill(0xc0004a2f40)
/usr/local/go/src/bufio/bufio.go:101 +0x103
bufio.(*Reader).ReadSlice(0xc0004a2f40, 0x61)
/usr/local/go/src/bufio/bufio.go:360 +0x2f
bufio.(*Reader).ReadLine(0xc0004a2f40)
/usr/local/go/src/bufio/bufio.go:389 +0x27
net/textproto.(*Reader).readLineSlice(0xc0004a2ec0)
/usr/local/go/src/net/textproto/reader.go:57 +0x99
net/textproto.(*Reader).ReadLine(...)
/usr/local/go/src/net/textproto/reader.go:38
github.com/gempir/go-twitch-irc/v2.(*Client).startReader(0xc000172900, {0x7f5ecde55b08, 0xc000308380}, 0xc0004d2330)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:800 +0x24d
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:725 +0x1a7
goroutine 35 [IO wait]:
internal/poll.runtime_pollWait(0x7f5ecdf32b40, 0x72)
/usr/local/go/src/runtime/netpoll.go:234 +0x89
internal/poll.(*pollDesc).wait(0xc00026c280, 0xc000da0000, 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(0xc00026c280, {0xc000da0000, 0xbadd, 0xbadd})
/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc00026c280, {0xc000da0000, 0xc000da000d, 0x167})
/usr/local/go/src/net/fd_posix.go:56 +0x29
net.(*conn).Read(0xc0002a0018, {0xc000da0000, 0xbad0, 0xc0000ba7c0})
/usr/local/go/src/net/net.go:183 +0x45
crypto/tls.(*atLeastReader).Read(0xc0001e2918, {0xc000da0000, 0x0, 0x40972d})
/usr/local/go/src/crypto/tls/conn.go:777 +0x3d
bytes.(*Buffer).ReadFrom(0xc000308978, {0x12c88c0, 0xc0001e2918})
/usr/local/go/src/bytes/buffer.go:204 +0x98
crypto/tls.(*Conn).readFromUntil(0xc000308700, {0x12c8e00, 0xc0002a0018}, 0xbadd)
/usr/local/go/src/crypto/tls/conn.go:799 +0xe5
crypto/tls.(*Conn).readRecordOrCCS(0xc000308700, 0x0)
/usr/local/go/src/crypto/tls/conn.go:606 +0x112
crypto/tls.(*Conn).readRecord(...)
/usr/local/go/src/crypto/tls/conn.go:574
crypto/tls.(*Conn).Read(0xc000308700, {0xc0000aa000, 0x1000, 0x64})
/usr/local/go/src/crypto/tls/conn.go:1277 +0x16f
bufio.(*Reader).fill(0xc0000baf40)
/usr/local/go/src/bufio/bufio.go:101 +0x103
bufio.(*Reader).ReadSlice(0xc0000baf40, 0x61)
/usr/local/go/src/bufio/bufio.go:360 +0x2f
bufio.(*Reader).ReadLine(0xc0000baf40)
/usr/local/go/src/bufio/bufio.go:389 +0x27
net/textproto.(*Reader).readLineSlice(0xc0000baec0)
/usr/local/go/src/net/textproto/reader.go:57 +0x99
net/textproto.(*Reader).ReadLine(...)
/usr/local/go/src/net/textproto/reader.go:38
github.com/gempir/go-twitch-irc/v2.(*Client).startReader(0xc000172780, {0x7f5ecde55b08, 0xc000308700}, 0xc0004d2330)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:800 +0x24d
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:725 +0x1a7
goroutine 72 [IO wait]:
internal/poll.runtime_pollWait(0x7f5ecdf32df8, 0x72)
/usr/local/go/src/runtime/netpoll.go:234 +0x89
internal/poll.(*pollDesc).wait(0xc000208180, 0xc0001a1800, 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(0xc000208180, {0xc0001a1800, 0x16dc, 0x16dc})
/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc000208180, {0xc0001a1800, 0x7f5ece2c7fff, 0x7f5ece110800})
/usr/local/go/src/net/fd_posix.go:56 +0x29
net.(*conn).Read(0xc000516050, {0xc0001a1800, 0x7f5ecca8d398, 0xc0001f27f8})
/usr/local/go/src/net/net.go:183 +0x45
crypto/tls.(*atLeastReader).Read(0xc00026f3e0, {0xc0001a1800, 0x0, 0x40972d})
/usr/local/go/src/crypto/tls/conn.go:777 +0x3d
bytes.(*Buffer).ReadFrom(0xc000070278, {0x12c88c0, 0xc00026f3e0})
/usr/local/go/src/bytes/buffer.go:204 +0x98
crypto/tls.(*Conn).readFromUntil(0xc000070000, {0x12c8e00, 0xc000516050}, 0xc0001f28f0)
/usr/local/go/src/crypto/tls/conn.go:799 +0xe5
crypto/tls.(*Conn).readRecordOrCCS(0xc000070000, 0x0)
/usr/local/go/src/crypto/tls/conn.go:606 +0x112
crypto/tls.(*Conn).readRecord(...)
/usr/local/go/src/crypto/tls/conn.go:574
crypto/tls.(*Conn).Read(0xc000070000, {0xc000293000, 0x1000, 0xc0005829c0})
/usr/local/go/src/crypto/tls/conn.go:1277 +0x16f
bufio.(*Reader).Read(0xc000290720, {0xc0002842d8, 0x9, 0xc000f874a0})
/usr/local/go/src/bufio/bufio.go:227 +0x1b4
io.ReadAtLeast({0x12c87a0, 0xc000290720}, {0xc0002842d8, 0x9, 0x9}, 0x9)
/usr/local/go/src/io/io.go:328 +0x9a
io.ReadFull(...)
/usr/local/go/src/io/io.go:347
net/http.http2readFrameHeader({0xc0002842d8, 0x9, 0xc0003efd10}, {0x12c87a0, 0xc000290720})
/usr/local/go/src/net/http/h2_bundle.go:1555 +0x6e
net/http.(*http2Framer).ReadFrame(0xc0002842a0)
/usr/local/go/src/net/http/h2_bundle.go:1813 +0x95
net/http.(*http2clientConnReadLoop).run(0xc0001f2f98)
/usr/local/go/src/net/http/h2_bundle.go:8583 +0x130
net/http.(*http2ClientConn).readLoop(0xc000556300)
/usr/local/go/src/net/http/h2_bundle.go:8506 +0x6f
created by net/http.(*http2Transport).newClientConn
/usr/local/go/src/net/http/h2_bundle.go:7317 +0xb85
goroutine 21 [select]:
github.com/gempir/go-twitch-irc/v2.(*Client).startParser(0xc000172600)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:904 +0xa5
github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection(0xc000172600, 0xc000070000, 0x55ec00)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:747 +0x326
github.com/gempir/go-twitch-irc/v2.(*Client).Connect(0xc000172600)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:695 +0x14d
created by github.com/gempir/justlog/bot.(*Bot).Join
/app/bot/main.go:94 +0x246
goroutine 22 [select]:
github.com/gempir/go-twitch-irc/v2.(*Client).startParser(0xc000172780)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:904 +0xa5
github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection(0xc000172780, 0x0, 0x0)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:747 +0x326
github.com/gempir/go-twitch-irc/v2.(*Client).Connect(0xc000172780)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:695 +0x14d
created by github.com/gempir/justlog/bot.(*Bot).Join
/app/bot/main.go:94 +0x246
goroutine 86 [chan send, 188 minutes]:
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).fillThrottle(...)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:56
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).Start(0xc00004be90)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:46 +0x65
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:727 +0x1fd
goroutine 87 [select]:
github.com/gempir/go-twitch-irc/v2.(*Client).startPinger.func1()
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:827 +0x151
created by github.com/gempir/go-twitch-irc/v2.(*Client).startPinger
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:821 +0xef
goroutine 23 [select]:
github.com/gempir/go-twitch-irc/v2.(*Client).startParser(0xc000172900)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:904 +0xa5
github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection(0xc000172900, 0xc000071180, 0x0)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:747 +0x326
github.com/gempir/go-twitch-irc/v2.(*Client).Connect(0xc000172900)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:695 +0x14d
created by github.com/gempir/justlog/bot.(*Bot).Join
/app/bot/main.go:94 +0x246
goroutine 24 [select]:
github.com/gempir/go-twitch-irc/v2.(*Client).startParser(0xc000172a80)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:904 +0xa5
github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection(0xc000172a80, 0x0, 0x0)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:747 +0x326
github.com/gempir/go-twitch-irc/v2.(*Client).Connect(0xc000172a80)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:695 +0x14d
created by github.com/gempir/justlog/bot.(*Bot).Join
/app/bot/main.go:94 +0x246
goroutine 25 [select]:
github.com/gempir/go-twitch-irc/v2.(*Client).startParser(0xc000172c00)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:904 +0xa5
github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection(0xc000172c00, 0x0, 0x0)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:747 +0x326
github.com/gempir/go-twitch-irc/v2.(*Client).Connect(0xc000172c00)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:695 +0x14d
created by github.com/gempir/justlog/bot.(*Bot).Join
/app/bot/main.go:94 +0x246
goroutine 29 [chan send, 188 minutes]:
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).fillThrottle(...)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:56
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).Start(0xc0001c8190)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:46 +0x65
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:727 +0x1fd
goroutine 88 [select, 1 minutes]:
github.com/gempir/go-twitch-irc/v2.(*Client).startWriter(0xc000172a80, {0x7f5ecdd526b0, 0xc000308000}, 0x0)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:875 +0x125
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:742 +0x319
goroutine 77 [chan send, 188 minutes]:
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).fillThrottle(...)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:56
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).Start(0xc00004aed0)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:46 +0x65
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:727 +0x1fd
goroutine 78 [select]:
github.com/gempir/go-twitch-irc/v2.(*Client).startPinger.func1()
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:827 +0x151
created by github.com/gempir/go-twitch-irc/v2.(*Client).startPinger
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:821 +0xef
goroutine 79 [select, 4 minutes]:
github.com/gempir/go-twitch-irc/v2.(*Client).startWriter(0xc000172900, {0x7f5ecdd526b0, 0xc000308380}, 0xc000170001)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:875 +0x125
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:742 +0x319
goroutine 37 [select]:
github.com/gempir/go-twitch-irc/v2.(*Client).startPinger.func1()
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:827 +0x151
created by github.com/gempir/go-twitch-irc/v2.(*Client).startPinger
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:821 +0xef
goroutine 80 [IO wait]:
internal/poll.runtime_pollWait(0x7f5ecdf32888, 0x72)
/usr/local/go/src/runtime/netpoll.go:234 +0x89
internal/poll.(*pollDesc).wait(0xc000298200, 0xc00092a000, 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(0xc000298200, {0xc00092a000, 0xa9b8, 0xa9b8})
/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc000298200, {0xc00092a000, 0xc00092a00d, 0x180})
/usr/local/go/src/net/fd_posix.go:56 +0x29
net.(*conn).Read(0xc0002a0020, {0xc00092a000, 0xa9ab, 0xc0000b67c0})
/usr/local/go/src/net/net.go:183 +0x45
crypto/tls.(*atLeastReader).Read(0xc0001e29c0, {0xc00092a000, 0x0, 0x40972d})
/usr/local/go/src/crypto/tls/conn.go:777 +0x3d
bytes.(*Buffer).ReadFrom(0xc000308cf8, {0x12c88c0, 0xc0001e29c0})
/usr/local/go/src/bytes/buffer.go:204 +0x98
crypto/tls.(*Conn).readFromUntil(0xc000308a80, {0x12c8e00, 0xc0002a0020}, 0xa9b8)
/usr/local/go/src/crypto/tls/conn.go:799 +0xe5
crypto/tls.(*Conn).readRecordOrCCS(0xc000308a80, 0x0)
/usr/local/go/src/crypto/tls/conn.go:606 +0x112
crypto/tls.(*Conn).readRecord(...)
/usr/local/go/src/crypto/tls/conn.go:574
crypto/tls.(*Conn).Read(0xc000308a80, {0xc000512000, 0x1000, 0x64})
/usr/local/go/src/crypto/tls/conn.go:1277 +0x16f
bufio.(*Reader).fill(0xc0000b6f40)
/usr/local/go/src/bufio/bufio.go:101 +0x103
bufio.(*Reader).ReadSlice(0xc0000b6f40, 0x81)
/usr/local/go/src/bufio/bufio.go:360 +0x2f
bufio.(*Reader).ReadLine(0xc0000b6f40)
/usr/local/go/src/bufio/bufio.go:389 +0x27
net/textproto.(*Reader).readLineSlice(0xc0000b6ec0)
/usr/local/go/src/net/textproto/reader.go:57 +0x99
net/textproto.(*Reader).ReadLine(...)
/usr/local/go/src/net/textproto/reader.go:38
github.com/gempir/go-twitch-irc/v2.(*Client).startReader(0xc000172600, {0x7f5ecde55b08, 0xc000308a80}, 0xc0001e0060)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:800 +0x24d
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:725 +0x1a7
goroutine 97 [chan send, 188 minutes]:
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).fillThrottle(...)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:56
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).Start(0xc0001c8e30)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:46 +0x65
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:727 +0x1fd
goroutine 98 [select]:
github.com/gempir/go-twitch-irc/v2.(*Client).startPinger.func1()
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:827 +0x151
created by github.com/gempir/go-twitch-irc/v2.(*Client).startPinger
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:821 +0xef
goroutine 89 [IO wait]:
internal/poll.runtime_pollWait(0x7f5ecdf32d10, 0x72)
/usr/local/go/src/runtime/netpoll.go:234 +0x89
internal/poll.(*pollDesc).wait(0xc000140400, 0xc0006ec000, 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(0xc000140400, {0xc0006ec000, 0x483b, 0x483b})
/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc000140400, {0xc0006ec000, 0xc0006ec00d, 0x42})
/usr/local/go/src/net/fd_posix.go:56 +0x29
net.(*conn).Read(0xc0002a0030, {0xc0006ec000, 0x482e, 0xc0000bb7c0})
/usr/local/go/src/net/net.go:183 +0x45
crypto/tls.(*atLeastReader).Read(0xc000bb9e48, {0xc0006ec000, 0x0, 0x40972d})
/usr/local/go/src/crypto/tls/conn.go:777 +0x3d
bytes.(*Buffer).ReadFrom(0xc0003093f8, {0x12c88c0, 0xc000bb9e48})
/usr/local/go/src/bytes/buffer.go:204 +0x98
crypto/tls.(*Conn).readFromUntil(0xc000309180, {0x12c8e00, 0xc0002a0030}, 0x483b)
/usr/local/go/src/crypto/tls/conn.go:799 +0xe5
crypto/tls.(*Conn).readRecordOrCCS(0xc000309180, 0x0)
/usr/local/go/src/crypto/tls/conn.go:606 +0x112
crypto/tls.(*Conn).readRecord(...)
/usr/local/go/src/crypto/tls/conn.go:574
crypto/tls.(*Conn).Read(0xc000309180, {0xc0000ab000, 0x1000, 0x64})
/usr/local/go/src/crypto/tls/conn.go:1277 +0x16f
bufio.(*Reader).fill(0xc0000bbf40)
/usr/local/go/src/bufio/bufio.go:101 +0x103
bufio.(*Reader).ReadSlice(0xc0000bbf40, 0x50)
/usr/local/go/src/bufio/bufio.go:360 +0x2f
bufio.(*Reader).ReadLine(0xc0000bbf40)
/usr/local/go/src/bufio/bufio.go:389 +0x27
net/textproto.(*Reader).readLineSlice(0xc0000bbec0)
/usr/local/go/src/net/textproto/reader.go:57 +0x99
net/textproto.(*Reader).ReadLine(...)
/usr/local/go/src/net/textproto/reader.go:38
github.com/gempir/go-twitch-irc/v2.(*Client).startReader(0xc000172c00, {0x7f5ecde55b08, 0xc000309180}, 0x0)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:800 +0x24d
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:725 +0x1a7
goroutine 90 [chan send, 188 minutes]:
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).fillThrottle(...)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:56
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).Start(0xc000250870)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:46 +0x65
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:727 +0x1fd
goroutine 91 [select]:
github.com/gempir/go-twitch-irc/v2.(*Client).startPinger.func1()
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:827 +0x151
created by github.com/gempir/go-twitch-irc/v2.(*Client).startPinger
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:821 +0xef
goroutine 38 [select]:
github.com/gempir/go-twitch-irc/v2.(*Client).startWriter(0xc000172780, {0x7f5ecdd526b0, 0xc000308700}, 0x0)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:875 +0x125
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:742 +0x319
goroutine 92 [select]:
github.com/gempir/go-twitch-irc/v2.(*Client).startWriter(0xc000172c00, {0x7f5ecdd526b0, 0xc000309180}, 0x0)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:875 +0x125
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:742 +0x319
goroutine 99 [select, 1 minutes]:
github.com/gempir/go-twitch-irc/v2.(*Client).startWriter(0xc000172600, {0x7f5ecdd526b0, 0xc000308a80}, 0x0)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:875 +0x125
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:742 +0x319
goroutine 1862475 [IO wait]:
internal/poll.runtime_pollWait(0x7f5ecdf32970, 0x72)
/usr/local/go/src/runtime/netpoll.go:234 +0x89
internal/poll.(*pollDesc).wait(0xc000208000, 0xc0003ef871, 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(0xc000208000, {0xc0003ef871, 0x1, 0x1})
/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc000208000, {0xc0003ef871, 0x175, 0x1})
/usr/local/go/src/net/fd_posix.go:56 +0x29
net.(*conn).Read(0xc000516298, {0xc0003ef871, 0xc00030c25c, 0x8})
/usr/local/go/src/net/net.go:183 +0x45
net/http.(*connReader).backgroundRead(0xc0003ef860)
/usr/local/go/src/net/http/server.go:672 +0x3f
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:668 +0xcf
goroutine 301 [chan send, 188 minutes]:
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).fillThrottle(...)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:56
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).Start(0xc0001c8190)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:46 +0x65
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:727 +0x1fd
goroutine 1862460 [runnable]:
syscall.Syscall6(0x101, 0xffffffffffffff9c, 0xc0003ba018, 0x80000, 0x0, 0x0, 0x0)
/usr/local/go/src/syscall/asm_linux_amd64.s:43 +0x5
syscall.openat(0x0, {0xc0003ba000, 0xc0000935a8}, 0x44d9d7, 0x0)
/usr/local/go/src/syscall/zsyscall_linux_amd64.go:69 +0x105
syscall.Open(...)
/usr/local/go/src/syscall/syscall_linux.go:155
os.openFileNolog({0xc0003ba000, 0x14}, 0x0, 0x0)
/usr/local/go/src/os/file_unix.go:217 +0x9b
os.OpenFile({0xc0003ba000, 0x14}, 0x0, 0x44cfef)
/usr/local/go/src/os/file.go:338 +0x45
os.Open(...)
/usr/local/go/src/os/file.go:318
io/ioutil.ReadDir({0xc0003ba000, 0xc000093830})
/usr/local/go/src/io/ioutil/ioutil.go:59 +0x29
github.com/gempir/justlog/filelog.(*Logger).GetAvailableLogsForUser(0xc00004b340, {0xc0002597d8, 0x8}, {0xc000f9a1a0, 0xe20000c000f9a1a0})
/app/filelog/userlog.go:162 +0x385
github.com/gempir/justlog/api.(*Server).writeAvailableLogs(0xc0001e0060, {0x12cefa0, 0xc0001b80e0}, 0x8, 0xc0001bc0f0)
/app/api/user.go:88 +0x14c
github.com/gempir/justlog/api.(*Server).route(0xc0001e0060, {0x12cefa0, 0xc0001b80e0}, 0xc000fec000)
/app/api/server.go:125 +0x19d
net/http.HandlerFunc.ServeHTTP(0x6ed480, {0x12cefa0, 0xc0001b80e0}, 0x1b)
/usr/local/go/src/net/http/server.go:2046 +0x2f
github.com/gempir/justlog/api.corsHandler.func1({0x12cefa0, 0xc0001b80e0}, 0xc000fec000)
/app/api/server.go:249 +0x33d
net/http.HandlerFunc.ServeHTTP(0x0, {0x12cefa0, 0xc0001b80e0}, 0x0)
/usr/local/go/src/net/http/server.go:2046 +0x2f
net/http.(*ServeMux).ServeHTTP(0xc007d788ca, {0x12cefa0, 0xc0001b80e0}, 0xc000fec000)
/usr/local/go/src/net/http/server.go:2424 +0x149
net/http.serverHandler.ServeHTTP({0xc00051dfb0}, {0x12cefa0, 0xc0001b80e0}, 0xc000fec000)
/usr/local/go/src/net/http/server.go:2878 +0x43b
net/http.(*conn).serve(0xc0012bafa0, {0x12d0420, 0xc0004d2330})
/usr/local/go/src/net/http/server.go:1929 +0xb08
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:3033 +0x4e8
goroutine 767 [chan send, 188 minutes]:
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).fillThrottle(...)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:56
github.com/gempir/go-twitch-irc/v2.(*RateLimiter).Start(0xc0001c8190)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/ratelimit.go:46 +0x65
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:727 +0x1fd
goroutine 768 [select]:
github.com/gempir/go-twitch-irc/v2.(*Client).startPinger.func1()
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:827 +0x151
created by github.com/gempir/go-twitch-irc/v2.(*Client).startPinger
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:821 +0xef
goroutine 801 [select, 1 minutes]:
github.com/gempir/go-twitch-irc/v2.(*Client).startWriter(0xc000172480, {0x7f5ecdd526b0, 0xc000468a80}, 0x100000000000000)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:875 +0x125
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:742 +0x319
goroutine 766 [IO wait]:
internal/poll.runtime_pollWait(0x7f5ecdf327a0, 0x72)
/usr/local/go/src/runtime/netpoll.go:234 +0x89
internal/poll.(*pollDesc).wait(0xc0000ae780, 0xc0005e4000, 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(0xc0000ae780, {0xc0005e4000, 0xa1f5, 0xa1f5})
/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc0000ae780, {0xc0005e4000, 0xc0005e400d, 0x1d6})
/usr/local/go/src/net/fd_posix.go:56 +0x29
net.(*conn).Read(0xc0001da0c8, {0xc0005e4000, 0xa1e8, 0xc0005527c0})
/usr/local/go/src/net/net.go:183 +0x45
crypto/tls.(*atLeastReader).Read(0xc0001e2bd0, {0xc0005e4000, 0x0, 0x40972d})
/usr/local/go/src/crypto/tls/conn.go:777 +0x3d
bytes.(*Buffer).ReadFrom(0xc000468cf8, {0x12c88c0, 0xc0001e2bd0})
/usr/local/go/src/bytes/buffer.go:204 +0x98
crypto/tls.(*Conn).readFromUntil(0xc000468a80, {0x12c8e00, 0xc0001da0c8}, 0xa1f5)
/usr/local/go/src/crypto/tls/conn.go:799 +0xe5
crypto/tls.(*Conn).readRecordOrCCS(0xc000468a80, 0x0)
/usr/local/go/src/crypto/tls/conn.go:606 +0x112
crypto/tls.(*Conn).readRecord(...)
/usr/local/go/src/crypto/tls/conn.go:574
crypto/tls.(*Conn).Read(0xc000468a80, {0xc0004b5000, 0x1000, 0xc000552cb8})
/usr/local/go/src/crypto/tls/conn.go:1277 +0x16f
bufio.(*Reader).fill(0xc000552f40)
/usr/local/go/src/bufio/bufio.go:101 +0x103
bufio.(*Reader).ReadSlice(0xc000552f40, 0x41)
/usr/local/go/src/bufio/bufio.go:360 +0x2f
bufio.(*Reader).ReadLine(0xc000552f40)
/usr/local/go/src/bufio/bufio.go:389 +0x27
net/textproto.(*Reader).readLineSlice(0xc000552ec0)
/usr/local/go/src/net/textproto/reader.go:57 +0x99
net/textproto.(*Reader).ReadLine(...)
/usr/local/go/src/net/textproto/reader.go:38
github.com/gempir/go-twitch-irc/v2.(*Client).startReader(0xc000172480, {0x7f5ecde55b08, 0xc000468a80}, 0x100000000000010)
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:800 +0x24d
created by github.com/gempir/go-twitch-irc/v2.(*Client).makeConnection
/go/pkg/mod/github.com/gempir/go-twitch-irc/v2@v2.8.1/client.go:725 +0x1a7
goroutine 1862461 [IO wait]:
internal/poll.runtime_pollWait(0x7f5ecdf325d0, 0x72)
/usr/local/go/src/runtime/netpoll.go:234 +0x89
internal/poll.(*pollDesc).wait(0xc00026c080, 0xc00051dfc1, 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(0xc00026c080, {0xc00051dfc1, 0x1, 0x1})
/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc00026c080, {0xc00051dfc1, 0x150, 0x1})
/usr/local/go/src/net/fd_posix.go:56 +0x29
net.(*conn).Read(0xc0001da1b8, {0xc00051dfc1, 0xc000068793, 0x8})
/usr/local/go/src/net/net.go:183 +0x45
net/http.(*connReader).backgroundRead(0xc00051dfb0)
/usr/local/go/src/net/http/server.go:672 +0x3f
created by net/http.(*connReader).startBackgroundRead
/usr/local/go/src/net/http/server.go:668 +0xcf