Concurrent map writes #1

Open
opened 2021-12-04 16:09:29 +01:00 by rdelaage · 1 comment
Owner

v1.1

mastogem    | 2021/11/29 16:13:50 Received request for toot 103693053078194251
mastogem    | 2021/11/29 16:14:00 Received request for thread 105293030815316428
mastogem    | fatal error: concurrent map writes
mastogem    | fatal error: concurrent map writes
mastogem    | 
mastogem    | goroutine 65299 [running]:
mastogem    | runtime.throw(0x7237bc, 0x15)
mastogem    | 	/usr/local/go/src/runtime/panic.go:1117 +0x72 fp=0xc0003fcdb8 sp=0xc0003fcd88 pc=0x4375f2
mastogem    | runtime.mapassign_faststr(0x6cede0, 0xc000114db0, 0xc00038a200, 0xa, 0xc000118be8)
mastogem    | 	/usr/local/go/src/runtime/map_faststr.go:291 +0x3d8 fp=0xc0003fce20 sp=0xc0003fcdb8 pc=0x415bd8
mastogem    | main.rateIsOk(0xc000114db0, 0xc00038a200, 0xa, 0x2d, 0x0)
mastogem    | 	/go/mastogem/util.go:121 +0x13f fp=0xc0003fce80 sp=0xc0003fce20 pc=0x69cdbf
mastogem    | main.handleConn(0xc0003b8a80, 0xc0001344e0, 0x10, 0xc000142078, 0x14, 0xc000180000, 0x8d, 0x2d)
mastogem    | 	/go/mastogem/server.go:93 +0x11c fp=0xc0003fcfa0 sp=0xc0003fce80 pc=0x69899c
mastogem    | runtime.goexit()
mastogem    | 	/usr/local/go/src/runtime/asm_amd64.s:1371 +0x1 fp=0xc0003fcfa8 sp=0xc0003fcfa0 pc=0x46c4a1
mastogem    | created by main.serve
mastogem    | 	/go/mastogem/server.go:58 +0xa5
mastogem    | 
mastogem    | goroutine 1 [IO wait]:
mastogem    | internal/poll.runtime_pollWait(0x7f96de02ceb8, 0x72, 0x0)
mastogem    | 	/usr/local/go/src/runtime/netpoll.go:222 +0x55
mastogem    | internal/poll.(*pollDesc).wait(0xc000126198, 0x72, 0x0, 0x0, 0x71ca5f)
mastogem    | 	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
mastogem    | internal/poll.(*pollDesc).waitRead(...)
mastogem    | 	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
mastogem    | internal/poll.(*FD).Accept(0xc000126180, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
mastogem    | 	/usr/local/go/src/internal/poll/fd_unix.go:401 +0x212
mastogem    | net.(*netFD).accept(0xc000126180, 0x10, 0x7f97074fea68, 0x10)
mastogem    | 	/usr/local/go/src/net/fd_unix.go:172 +0x45
mastogem    | net.(*TCPListener).accept(0xc0001223c0, 0x40f858, 0x10, 0x6db540)
mastogem    | 	/usr/local/go/src/net/tcpsock_posix.go:139 +0x32
mastogem    | net.(*TCPListener).Accept(0xc0001223c0, 0x4426ce, 0xc0001d5dc8, 0x465900, 0xc0001d5e10)
mastogem    | 	/usr/local/go/src/net/tcpsock.go:261 +0x65
mastogem    | crypto/tls.(*listener).Accept(0xc0001223d8, 0x737d10, 0xc0003b8e00, 0xc0001344e0, 0x10)
mastogem    | 	/usr/local/go/src/crypto/tls/tls.go:67 +0x37
mastogem    | main.serve(0x781830, 0xc0001223d8, 0xc0001344e0, 0x10, 0xc000142078, 0x14, 0xc000180000, 0x8d, 0x2d)
mastogem    | 	/go/mastogem/server.go:53 +0xbf
mastogem    | main.main()
mastogem    | 	/go/mastogem/main.go:80 +0x249
mastogem    | 
mastogem    | goroutine 64217 [IO wait]:
mastogem    | internal/poll.runtime_pollWait(0x7f96de02c690, 0x72, 0xffffffffffffffff)
mastogem    | 	/usr/local/go/src/runtime/netpoll.go:222 +0x55
mastogem    | internal/poll.(*pollDesc).wait(0xc0000ce218, 0x72, 0x5300, 0x533a, 0xffffffffffffffff)
mastogem    | 	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
mastogem    | internal/poll.(*pollDesc).waitRead(...)
mastogem    | 	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
mastogem    | internal/poll.(*FD).Read(0xc0000ce200, 0xc0001ae000, 0x533a, 0x533a, 0x0, 0x0, 0x0)
mastogem    | 	/usr/local/go/src/internal/poll/fd_unix.go:166 +0x1d5
mastogem    | net.(*netFD).Read(0xc0000ce200, 0xc0001ae000, 0x533a, 0x533a, 0xc0001637c0, 0xc3437200a1b42719, 0x1f)
mastogem    | 	/usr/local/go/src/net/fd_posix.go:55 +0x4f
mastogem    | net.(*conn).Read(0xc00033a008, 0xc0001ae000, 0x533a, 0x533a, 0x0, 0x0, 0x0)
mastogem    | 	/usr/local/go/src/net/net.go:183 +0x91
mastogem    | crypto/tls.(*atLeastReader).Read(0xc0000a23d8, 0xc0001ae000, 0x533a, 0x533a, 0x500, 0x9146e0, 0x0)
mastogem    | 	/usr/local/go/src/crypto/tls/conn.go:776 +0x63
mastogem    | bytes.(*Buffer).ReadFrom(0xc000356278, 0x77d940, 0xc0000a23d8, 0x40ce85, 0x6d5140, 0x70cd20)
mastogem    | 	/usr/local/go/src/bytes/buffer.go:204 +0xbe
mastogem    | crypto/tls.(*Conn).readFromUntil(0xc000356000, 0x77dbc0, 0xc00033a008, 0x5, 0xc00033a008, 0x10000c000046960)
mastogem    | 	/usr/local/go/src/crypto/tls/conn.go:798 +0xf3
mastogem    | crypto/tls.(*Conn).readRecordOrCCS(0xc000356000, 0x0, 0x0, 0x2)
mastogem    | 	/usr/local/go/src/crypto/tls/conn.go:605 +0x115
mastogem    | crypto/tls.(*Conn).readRecord(...)
mastogem    | 	/usr/local/go/src/crypto/tls/conn.go:573
mastogem    | crypto/tls.(*Conn).Read(0xc000356000, 0xc000497000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
mastogem    | 	/usr/local/go/src/crypto/tls/conn.go:1276 +0x165
mastogem    | bufio.(*Reader).Read(0xc0004e8780, 0xc0000d43b8, 0x9, 0x9, 0x62a80b, 0xc000046c78, 0x4088e5)
mastogem    | 	/usr/local/go/src/bufio/bufio.go:227 +0x222
mastogem    | io.ReadAtLeast(0x77d7e0, 0xc0004e8780, 0xc0000d43b8, 0x9, 0x9, 0x9, 0xc0000ee940, 0xb752668efbe200, 0xc0000ee940)
mastogem    | 	/usr/local/go/src/io/io.go:328 +0x87
mastogem    | io.ReadFull(...)
mastogem    | 	/usr/local/go/src/io/io.go:347
mastogem    | net/http.http2readFrameHeader(0xc0000d43b8, 0x9, 0x9, 0x77d7e0, 0xc0004e8780, 0x0, 0x0, 0x0, 0x0)
mastogem    | 	/usr/local/go/src/net/http/h2_bundle.go:1477 +0x89
mastogem    | net/http.(*http2Framer).ReadFrame(0xc0000d4380, 0xc000208b10, 0x0, 0x0, 0x0)
mastogem    | 	/usr/local/go/src/net/http/h2_bundle.go:1735 +0xa5
mastogem    | net/http.(*http2clientConnReadLoop).run(0xc000046fa8, 0x0, 0x0)
mastogem    | 	/usr/local/go/src/net/http/h2_bundle.go:8322 +0xd8
mastogem    | net/http.(*http2ClientConn).readLoop(0xc0000d3e00)
mastogem    | 	/usr/local/go/src/net/http/h2_bundle.go:8244 +0x6f
mastogem    | created by net/http.(*http2Transport).newClientConn
mastogem    | 	/usr/local/go/src/net/http/h2_bundle.go:7208 +0x6c5
mastogem    | 
mastogem    | goroutine 65300 [running]:
mastogem    | 	goroutine running on other thread; stack unavailable
mastogem    | created by main.serve
mastogem    | 	/go/mastogem/server.go:58 +0xa5
mastogem    | 
mastogem    | goroutine 65300 [running]:
mastogem    | runtime.throw(0x7237bc, 0x15)
mastogem    | 	/usr/local/go/src/runtime/panic.go:1117 +0x72 fp=0xc0004035b8 sp=0xc000403588 pc=0x4375f2
mastogem    | runtime.mapassign_faststr(0x6cede0, 0xc000114db0, 0xc0002b7280, 0xa, 0xc000118be8)
mastogem    | 	/usr/local/go/src/runtime/map_faststr.go:291 +0x3d8 fp=0xc000403620 sp=0xc0004035b8 pc=0x415bd8
mastogem    | main.rateIsOk(0xc000114db0, 0xc0002b7280, 0xa, 0x2d, 0x0)
mastogem    | 	/go/mastogem/util.go:121 +0x13f fp=0xc000403680 sp=0xc000403620 pc=0x69cdbf
mastogem    | main.handleConn(0xc0003b8e00, 0xc0001344e0, 0x10, 0xc000142078, 0x14, 0xc000180000, 0x8d, 0x2d)
mastogem    | 	/go/mastogem/server.go:93 +0x11c fp=0xc0004037a0 sp=0xc000403680 pc=0x69899c
mastogem    | runtime.goexit()
mastogem    | 	/usr/local/go/src/runtime/asm_amd64.s:1371 +0x1 fp=0xc0004037a8 sp=0xc0004037a0 pc=0x46c4a1
mastogem    | created by main.serve
mastogem    | 	/go/mastogem/server.go:58 +0xa5
v1.1 ``` mastogem | 2021/11/29 16:13:50 Received request for toot 103693053078194251 mastogem | 2021/11/29 16:14:00 Received request for thread 105293030815316428 mastogem | fatal error: concurrent map writes mastogem | fatal error: concurrent map writes mastogem | mastogem | goroutine 65299 [running]: mastogem | runtime.throw(0x7237bc, 0x15) mastogem | /usr/local/go/src/runtime/panic.go:1117 +0x72 fp=0xc0003fcdb8 sp=0xc0003fcd88 pc=0x4375f2 mastogem | runtime.mapassign_faststr(0x6cede0, 0xc000114db0, 0xc00038a200, 0xa, 0xc000118be8) mastogem | /usr/local/go/src/runtime/map_faststr.go:291 +0x3d8 fp=0xc0003fce20 sp=0xc0003fcdb8 pc=0x415bd8 mastogem | main.rateIsOk(0xc000114db0, 0xc00038a200, 0xa, 0x2d, 0x0) mastogem | /go/mastogem/util.go:121 +0x13f fp=0xc0003fce80 sp=0xc0003fce20 pc=0x69cdbf mastogem | main.handleConn(0xc0003b8a80, 0xc0001344e0, 0x10, 0xc000142078, 0x14, 0xc000180000, 0x8d, 0x2d) mastogem | /go/mastogem/server.go:93 +0x11c fp=0xc0003fcfa0 sp=0xc0003fce80 pc=0x69899c mastogem | runtime.goexit() mastogem | /usr/local/go/src/runtime/asm_amd64.s:1371 +0x1 fp=0xc0003fcfa8 sp=0xc0003fcfa0 pc=0x46c4a1 mastogem | created by main.serve mastogem | /go/mastogem/server.go:58 +0xa5 mastogem | mastogem | goroutine 1 [IO wait]: mastogem | internal/poll.runtime_pollWait(0x7f96de02ceb8, 0x72, 0x0) mastogem | /usr/local/go/src/runtime/netpoll.go:222 +0x55 mastogem | internal/poll.(*pollDesc).wait(0xc000126198, 0x72, 0x0, 0x0, 0x71ca5f) mastogem | /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45 mastogem | internal/poll.(*pollDesc).waitRead(...) mastogem | /usr/local/go/src/internal/poll/fd_poll_runtime.go:92 mastogem | internal/poll.(*FD).Accept(0xc000126180, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0) mastogem | /usr/local/go/src/internal/poll/fd_unix.go:401 +0x212 mastogem | net.(*netFD).accept(0xc000126180, 0x10, 0x7f97074fea68, 0x10) mastogem | /usr/local/go/src/net/fd_unix.go:172 +0x45 mastogem | net.(*TCPListener).accept(0xc0001223c0, 0x40f858, 0x10, 0x6db540) mastogem | /usr/local/go/src/net/tcpsock_posix.go:139 +0x32 mastogem | net.(*TCPListener).Accept(0xc0001223c0, 0x4426ce, 0xc0001d5dc8, 0x465900, 0xc0001d5e10) mastogem | /usr/local/go/src/net/tcpsock.go:261 +0x65 mastogem | crypto/tls.(*listener).Accept(0xc0001223d8, 0x737d10, 0xc0003b8e00, 0xc0001344e0, 0x10) mastogem | /usr/local/go/src/crypto/tls/tls.go:67 +0x37 mastogem | main.serve(0x781830, 0xc0001223d8, 0xc0001344e0, 0x10, 0xc000142078, 0x14, 0xc000180000, 0x8d, 0x2d) mastogem | /go/mastogem/server.go:53 +0xbf mastogem | main.main() mastogem | /go/mastogem/main.go:80 +0x249 mastogem | mastogem | goroutine 64217 [IO wait]: mastogem | internal/poll.runtime_pollWait(0x7f96de02c690, 0x72, 0xffffffffffffffff) mastogem | /usr/local/go/src/runtime/netpoll.go:222 +0x55 mastogem | internal/poll.(*pollDesc).wait(0xc0000ce218, 0x72, 0x5300, 0x533a, 0xffffffffffffffff) mastogem | /usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45 mastogem | internal/poll.(*pollDesc).waitRead(...) mastogem | /usr/local/go/src/internal/poll/fd_poll_runtime.go:92 mastogem | internal/poll.(*FD).Read(0xc0000ce200, 0xc0001ae000, 0x533a, 0x533a, 0x0, 0x0, 0x0) mastogem | /usr/local/go/src/internal/poll/fd_unix.go:166 +0x1d5 mastogem | net.(*netFD).Read(0xc0000ce200, 0xc0001ae000, 0x533a, 0x533a, 0xc0001637c0, 0xc3437200a1b42719, 0x1f) mastogem | /usr/local/go/src/net/fd_posix.go:55 +0x4f mastogem | net.(*conn).Read(0xc00033a008, 0xc0001ae000, 0x533a, 0x533a, 0x0, 0x0, 0x0) mastogem | /usr/local/go/src/net/net.go:183 +0x91 mastogem | crypto/tls.(*atLeastReader).Read(0xc0000a23d8, 0xc0001ae000, 0x533a, 0x533a, 0x500, 0x9146e0, 0x0) mastogem | /usr/local/go/src/crypto/tls/conn.go:776 +0x63 mastogem | bytes.(*Buffer).ReadFrom(0xc000356278, 0x77d940, 0xc0000a23d8, 0x40ce85, 0x6d5140, 0x70cd20) mastogem | /usr/local/go/src/bytes/buffer.go:204 +0xbe mastogem | crypto/tls.(*Conn).readFromUntil(0xc000356000, 0x77dbc0, 0xc00033a008, 0x5, 0xc00033a008, 0x10000c000046960) mastogem | /usr/local/go/src/crypto/tls/conn.go:798 +0xf3 mastogem | crypto/tls.(*Conn).readRecordOrCCS(0xc000356000, 0x0, 0x0, 0x2) mastogem | /usr/local/go/src/crypto/tls/conn.go:605 +0x115 mastogem | crypto/tls.(*Conn).readRecord(...) mastogem | /usr/local/go/src/crypto/tls/conn.go:573 mastogem | crypto/tls.(*Conn).Read(0xc000356000, 0xc000497000, 0x1000, 0x1000, 0x0, 0x0, 0x0) mastogem | /usr/local/go/src/crypto/tls/conn.go:1276 +0x165 mastogem | bufio.(*Reader).Read(0xc0004e8780, 0xc0000d43b8, 0x9, 0x9, 0x62a80b, 0xc000046c78, 0x4088e5) mastogem | /usr/local/go/src/bufio/bufio.go:227 +0x222 mastogem | io.ReadAtLeast(0x77d7e0, 0xc0004e8780, 0xc0000d43b8, 0x9, 0x9, 0x9, 0xc0000ee940, 0xb752668efbe200, 0xc0000ee940) mastogem | /usr/local/go/src/io/io.go:328 +0x87 mastogem | io.ReadFull(...) mastogem | /usr/local/go/src/io/io.go:347 mastogem | net/http.http2readFrameHeader(0xc0000d43b8, 0x9, 0x9, 0x77d7e0, 0xc0004e8780, 0x0, 0x0, 0x0, 0x0) mastogem | /usr/local/go/src/net/http/h2_bundle.go:1477 +0x89 mastogem | net/http.(*http2Framer).ReadFrame(0xc0000d4380, 0xc000208b10, 0x0, 0x0, 0x0) mastogem | /usr/local/go/src/net/http/h2_bundle.go:1735 +0xa5 mastogem | net/http.(*http2clientConnReadLoop).run(0xc000046fa8, 0x0, 0x0) mastogem | /usr/local/go/src/net/http/h2_bundle.go:8322 +0xd8 mastogem | net/http.(*http2ClientConn).readLoop(0xc0000d3e00) mastogem | /usr/local/go/src/net/http/h2_bundle.go:8244 +0x6f mastogem | created by net/http.(*http2Transport).newClientConn mastogem | /usr/local/go/src/net/http/h2_bundle.go:7208 +0x6c5 mastogem | mastogem | goroutine 65300 [running]: mastogem | goroutine running on other thread; stack unavailable mastogem | created by main.serve mastogem | /go/mastogem/server.go:58 +0xa5 mastogem | mastogem | goroutine 65300 [running]: mastogem | runtime.throw(0x7237bc, 0x15) mastogem | /usr/local/go/src/runtime/panic.go:1117 +0x72 fp=0xc0004035b8 sp=0xc000403588 pc=0x4375f2 mastogem | runtime.mapassign_faststr(0x6cede0, 0xc000114db0, 0xc0002b7280, 0xa, 0xc000118be8) mastogem | /usr/local/go/src/runtime/map_faststr.go:291 +0x3d8 fp=0xc000403620 sp=0xc0004035b8 pc=0x415bd8 mastogem | main.rateIsOk(0xc000114db0, 0xc0002b7280, 0xa, 0x2d, 0x0) mastogem | /go/mastogem/util.go:121 +0x13f fp=0xc000403680 sp=0xc000403620 pc=0x69cdbf mastogem | main.handleConn(0xc0003b8e00, 0xc0001344e0, 0x10, 0xc000142078, 0x14, 0xc000180000, 0x8d, 0x2d) mastogem | /go/mastogem/server.go:93 +0x11c fp=0xc0004037a0 sp=0xc000403680 pc=0x69899c mastogem | runtime.goexit() mastogem | /usr/local/go/src/runtime/asm_amd64.s:1371 +0x1 fp=0xc0004037a8 sp=0xc0004037a0 pc=0x46c4a1 mastogem | created by main.serve mastogem | /go/mastogem/server.go:58 +0xa5 ```
Author
Owner
#todo, use of https://pkg.go.dev/sync#Map
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Gemini/mastoGem#1
No description provided.