Project-Faster / qpep

A working version of qpep standalone go client/server, designed to accelerate high-latency connections, like those provided by geostationary satellites.
https://docs.projectfaster.org
Other
3 stars 1 forks source link

0.3.0 Server Crash #51

Closed mfoxworthy closed 5 months ago

mfoxworthy commented 1 year ago

`fatal error: concurrent map read and map write

goroutine 13552 [running]: runtime.throw({0x9898d0?, 0xc0003ad5c8?}) /opt/go_1.18.10/src/runtime/panic.go:992 +0x71 fp=0xc0003ad570 sp=0xc0003ad540 pc=0x436511 runtime.mapaccess2_faststr(0x8ef900?, 0x97a45d?, {0xc0000280d8, 0x12}) /opt/go_1.18.10/src/runtime/map_faststr.go:117 +0x3d4 fp=0xc0003ad5d8 sp=0xc0003ad570 pc=0x4153b4 github.com/parvit/qpep/api.(*statistics).SetMappedAddress(0x11cfdc0, {0xc000028078, 0x13}, {0xc001442080, 0xd}) /mnt/dev/src/github.com/parvit/qpep-faster/api/statistics.go:287 +0x17e fp=0xc0003ad668 sp=0xc0003ad5d8 pc=0x888d9e github.com/parvit/qpep/server.handleQuicToTcp({0xa468f8, 0xc0003a4680}, 0x43fee5?, 0x0, {0xa48610?, 0xc000230020}, {0x7fb0682f8fe8?, 0xc0000005a0}, {0xc000028078, 0x13}, ...) /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:153 +0x11e fp=0xc0003ad770 sp=0xc0003ad668 pc=0x88f27e github.com/parvit/qpep/server.handleQuicStream.func4() /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:120 +0x65 fp=0xc0003ad7e0 sp=0xc0003ad770 pc=0x88f085 runtime.goexit() /opt/go_1.18.10/src/runtime/asm_amd64.s:1571 +0x1 fp=0xc0003ad7e8 sp=0xc0003ad7e0 pc=0x4660c1 created by github.com/parvit/qpep/server.handleQuicStream /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:120 +0x89c

goroutine 1 [chan receive, 27 minutes]: github.com/parvit/kardianos-service.(systemd).Run.func1() /root/go/pkg/mod/github.com/parvit/kardianos-service@v0.0.0-20220822101756-89fc969969b8/service_systemd_linux.go:231 +0x88 github.com/parvit/kardianos-service.(systemd).Run(0xc00007bcb0) /root/go/pkg/mod/github.com/parvit/kardianos-service@v0.0.0-20220822101756-89fc969969b8/service_systemd_linux.go:232 +0x92 github.com/parvit/qpep/service.ServiceMain() /mnt/dev/src/github.com/parvit/qpep-faster/service/service.go:179 +0x83f main.main() /mnt/dev/src/github.com/parvit/qpep-faster/main.go:23 +0x3f

goroutine 6 [select]: github.com/parvit/qpep/service.(QPepService).Main(0xc00006a600) /mnt/dev/src/github.com/parvit/qpep-faster/service/service.go:257 +0x275 created by github.com/parvit/qpep/service.(QPepService).Start /mnt/dev/src/github.com/parvit/qpep-faster/service/service.go:194 +0x85

goroutine 8 [syscall, 27 minutes]: os/signal.signal_recv() /opt/go_1.18.10/src/runtime/sigqueue.go:151 +0x2f os/signal.loop() /opt/go_1.18.10/src/os/signal/signal_unix.go:23 +0x19 created by os/signal.Notify.func1.1 /opt/go_1.18.10/src/os/signal/signal.go:151 +0x2a

goroutine 18 [IO wait, 27 minutes]: internal/poll.runtime_pollWait(0x7fb06837cff8, 0x72) /opt/go_1.18.10/src/runtime/netpoll.go:302 +0x89 internal/poll.(pollDesc).wait(0xc0000b8180?, 0x0?, 0x0) /opt/go_1.18.10/src/internal/poll/fd_poll_runtime.go:83 +0x32 internal/poll.(pollDesc).waitRead(...) /opt/go_1.18.10/src/internal/poll/fd_poll_runtime.go:88 internal/poll.(FD).Accept(0xc0000b8180) /opt/go_1.18.10/src/internal/poll/fd_unix.go:614 +0x22c net.(netFD).accept(0xc0000b8180) /opt/go_1.18.10/src/net/fd_unix.go:172 +0x35 net.(TCPListener).accept(0xc0000c8030) /opt/go_1.18.10/src/net/tcpsock_posix.go:139 +0x28 net.(TCPListener).Accept(0xc0000c8030) /opt/go_1.18.10/src/net/tcpsock.go:288 +0x3d net/http.(Server).Serve(0xc0000d2000, {0xa46390, 0xc0000c8030}) /opt/go_1.18.10/src/net/http/server.go:3039 +0x385 net/http.(Server).ListenAndServe(0xc0000d2000) /opt/go_1.18.10/src/net/http/server.go:2968 +0x7d github.com/parvit/qpep/api.RunServer({0xa468f8?, 0xc00006a5c0}, 0xc000021340, 0x1) /mnt/dev/src/github.com/parvit/qpep-faster/api/router.go:83 +0x2c8 created by github.com/parvit/qpep/service.(*QPepService).Main /mnt/dev/src/github.com/parvit/qpep-faster/service/service.go:244 +0x118

goroutine 19 [select]: github.com/parvit/qpep/server.RunServer({0xa468f8, 0xc00006a5c0}, 0x0?) /mnt/dev/src/github.com/parvit/qpep-faster/server/server.go:79 +0x2e5 created by github.com/parvit/qpep/service.runAsServer /mnt/dev/src/github.com/parvit/qpep-faster/service/service.go:289 +0xa5

goroutine 20 [IO wait]: internal/poll.runtime_pollWait(0x7fb06837cf08, 0x72) /opt/go_1.18.10/src/runtime/netpoll.go:302 +0x89 internal/poll.(pollDesc).wait(0xc000118700?, 0xc000030000?, 0x0) /opt/go_1.18.10/src/internal/poll/fd_poll_runtime.go:83 +0x32 internal/poll.(pollDesc).waitRead(...) /opt/go_1.18.10/src/internal/poll/fd_poll_runtime.go:88 internal/poll.(FD).Accept(0xc000118700) /opt/go_1.18.10/src/internal/poll/fd_unix.go:614 +0x22c net.(netFD).accept(0xc000118700) /opt/go_1.18.10/src/net/fd_unix.go:172 +0x35 net.(TCPListener).accept(0xc00000f068) /opt/go_1.18.10/src/net/tcpsock_posix.go:139 +0x28 net.(TCPListener).Accept(0xc00000f068) /opt/go_1.18.10/src/net/tcpsock.go:288 +0x3d net/http.(Server).Serve(0xc00018e000, {0xa46390, 0xc00000f068}) /opt/go_1.18.10/src/net/http/server.go:3039 +0x385 net/http.(Server).ListenAndServe(0xc00018e000) /opt/go_1.18.10/src/net/http/server.go:2968 +0x7d github.com/parvit/qpep/api.RunServer({0xa468f8?, 0xc00006a5c0}, 0xc000021340, 0x0) /mnt/dev/src/github.com/parvit/qpep-faster/api/router.go:83 +0x2c8 created by github.com/parvit/qpep/service.runAsServer /mnt/dev/src/github.com/parvit/qpep-faster/service/service.go:290 +0x105

goroutine 21 [chan receive, 27 minutes]: github.com/parvit/qpep/api.RunServer.func1() /mnt/dev/src/github.com/parvit/qpep-faster/api/router.go:75 +0x7a created by github.com/parvit/qpep/api.RunServer /mnt/dev/src/github.com/parvit/qpep-faster/api/router.go:73 +0x2bb

goroutine 9 [chan receive, 27 minutes]: github.com/parvit/qpep/api.RunServer.func1() /mnt/dev/src/github.com/parvit/qpep-faster/api/router.go:75 +0x7a created by github.com/parvit/qpep/api.RunServer /mnt/dev/src/github.com/parvit/qpep-faster/api/router.go:73 +0x2bb

goroutine 34 [IO wait]: internal/poll.runtime_pollWait(0x7fb06837ce18, 0x72) /opt/go_1.18.10/src/runtime/netpoll.go:302 +0x89 internal/poll.(pollDesc).wait(0xc000246100?, 0xc0002fc280?, 0x0) /opt/go_1.18.10/src/internal/poll/fd_poll_runtime.go:83 +0x32 internal/poll.(pollDesc).waitRead(...) /opt/go_1.18.10/src/internal/poll/fd_poll_runtime.go:88 internal/poll.(FD).RawRead(0xc000246100, 0xc000021690) /opt/go_1.18.10/src/internal/poll/fd_unix.go:766 +0x145 net.(rawConn).Read(0xc000230058, 0x81a40a?) /opt/go_1.18.10/src/net/rawconn.go:43 +0x45 golang.org/x/net/internal/socket.(syscaller).recvmmsg(0xc00016a288, {0xa46420?, 0xc000230058?}, {0xc000139000?, 0x9b8e80?, 0x0?}, 0xc000056d38?) /root/go/pkg/mod/golang.org/x/net@v0.6.0/internal/socket/mmsghdr_unix.go:121 +0x94 golang.org/x/net/internal/socket.(Conn).recvMsgs(0xc0002344a0, {0xc000552000?, 0x8, 0x8}, 0xc000138e00?) /root/go/pkg/mod/golang.org/x/net@v0.6.0/internal/socket/rawconn_mmsg.go:25 +0x185 golang.org/x/net/internal/socket.(Conn).RecvMsgs(...) /root/go/pkg/mod/golang.org/x/net@v0.6.0/internal/socket/socket.go:267 golang.org/x/net/ipv4.(payloadHandler).ReadBatch(0xc00022e060, {0xc000552000?, 0xc000056e58?, 0x8443c6?}, 0xc00148c660?) /root/go/pkg/mod/golang.org/x/net@v0.6.0/ipv4/batch.go:80 +0x57 github.com/Project-Faster/quic-go.(oobConn).ReadPacket(0xc000246180) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/sys_conn_oob.go:154 +0x6b5 github.com/Project-Faster/quic-go.(packetHandlerMap).listen(0xc000556000) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/packet_handler_map.go:366 +0x70 created by github.com/Project-Faster/quic-go.newPacketHandlerMap /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/packet_handler_map.go:144 +0x356

goroutine 35 [select, 27 minutes]: github.com/Project-Faster/quic-go.(*packetHandlerMap).runCloseQueue(0xc000556000) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/packet_handler_map.go:279 +0x14e created by github.com/Project-Faster/quic-go.newPacketHandlerMap /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/packet_handler_map.go:145 +0x396

goroutine 36 [select, 1 minutes]: github.com/Project-Faster/quic-go.(*baseServer).run(0xc0005560b0) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/server.go:232 +0xe6 created by github.com/Project-Faster/quic-go.listen /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/server.go:218 +0x596

goroutine 37 [select, 1 minutes]: github.com/Project-Faster/quic-go.(baseServer).accept(0xc0005560b0, {0xa46930, 0xc000024090}) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/server.go:250 +0xa9 github.com/Project-Faster/quic-go.(baseServer).Accept(0x0?, {0xa46930?, 0xc000024090?}) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/server.go:246 +0x25 github.com/parvit/qpep/server.listenQuicSession() /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:26 +0x67 created by github.com/parvit/qpep/server.RunServer /mnt/dev/src/github.com/parvit/qpep-faster/server/server.go:72 +0x1a5

goroutine 38 [select]: github.com/parvit/qpep/server.performanceWatcher({0xa468f8, 0xc000564000}) /mnt/dev/src/github.com/parvit/qpep-faster/server/server.go:127 +0xdb created by github.com/parvit/qpep/server.RunServer /mnt/dev/src/github.com/parvit/qpep-faster/server/server.go:75 +0x20d

goroutine 13471 [chan receive]: github.com/parvit/qpep/server.handleQuicStream.func3() /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:123 +0x36 created by github.com/parvit/qpep/server.handleQuicStream /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:122 +0x9ef

goroutine 13334 [select]: github.com/Project-Faster/quic-go.(sendQueue).Run(0xc0002440f0) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/send_queue.go:67 +0xff github.com/Project-Faster/quic-go.(connection).run.func2() /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/connection.go:533 +0x2b created by github.com/Project-Faster/quic-go.(*connection).run /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/connection.go:532 +0x1be

goroutine 13529 [IO wait]: internal/poll.runtime_pollWait(0x7fb06837c788, 0x72) /opt/go_1.18.10/src/runtime/netpoll.go:302 +0x89 internal/poll.(pollDesc).wait(0xc0000b8900?, 0xc0000bc000?, 0x0) /opt/go_1.18.10/src/internal/poll/fd_poll_runtime.go:83 +0x32 internal/poll.(pollDesc).waitRead(...) /opt/go_1.18.10/src/internal/poll/fd_poll_runtime.go:88 internal/poll.(FD).Read(0xc0000b8900, {0xc0000bc000, 0x1000, 0x1000}) /opt/go_1.18.10/src/internal/poll/fd_unix.go:167 +0x25a net.(netFD).Read(0xc0000b8900, {0xc0000bc000?, 0x7fb068f15fff?, 0x47049e?}) /opt/go_1.18.10/src/net/fd_posix.go:55 +0x29 net.(conn).Read(0xc000176110, {0xc0000bc000?, 0x203000?, 0x400?}) /opt/go_1.18.10/src/net/net.go:183 +0x45 net/http.(connReader).Read(0xc0000a2e40, {0xc0000bc000, 0x1000, 0x1000}) /opt/go_1.18.10/src/net/http/server.go:780 +0x16d bufio.(Reader).fill(0xc0011b89c0) /opt/go_1.18.10/src/bufio/bufio.go:106 +0x103 bufio.(Reader).ReadSlice(0xc0011b89c0, 0x0?) /opt/go_1.18.10/src/bufio/bufio.go:371 +0x2f bufio.(Reader).ReadLine(0xc0011b89c0) /opt/go_1.18.10/src/bufio/bufio.go:400 +0x27 net/textproto.(Reader).readLineSlice(0xc0000a2ea0) /opt/go_1.18.10/src/net/textproto/reader.go:57 +0x99 net/textproto.(Reader).ReadLine(...) /opt/go_1.18.10/src/net/textproto/reader.go:38 net/http.readRequest(0xc000176110?) /opt/go_1.18.10/src/net/http/request.go:1029 +0x79 net/http.(conn).readRequest(0xc000126000, {0xa468f8, 0xc000564480}) /opt/go_1.18.10/src/net/http/server.go:988 +0x24a net/http.(conn).serve(0xc000126000, {0xa469a0, 0xc00007bf50}) /opt/go_1.18.10/src/net/http/server.go:1891 +0x32b created by net/http.(Server).Serve /opt/go_1.18.10/src/net/http/server.go:3071 +0x4db

goroutine 13470 [IO wait]: internal/poll.runtime_pollWait(0x7fb0683dc420, 0x72) /opt/go_1.18.10/src/runtime/netpoll.go:302 +0x89 internal/poll.(pollDesc).wait(0xc000386200?, 0xc000780000?, 0x0) /opt/go_1.18.10/src/internal/poll/fd_poll_runtime.go:83 +0x32 internal/poll.(pollDesc).waitRead(...) /opt/go_1.18.10/src/internal/poll/fd_poll_runtime.go:88 internal/poll.(FD).Read(0xc000386200, {0xc000780000, 0x80000, 0x80000}) /opt/go_1.18.10/src/internal/poll/fd_unix.go:167 +0x25a net.(netFD).Read(0xc000386200, {0xc000780000?, 0x0?, 0xc000134d00?}) /opt/go_1.18.10/src/net/fd_posix.go:55 +0x29 net.(conn).Read(0xc000230068, {0xc000780000?, 0xc000484d01?, 0xc0000003c0?}) /opt/go_1.18.10/src/net/net.go:183 +0x45 io.(LimitedReader).Read(0xc0001f98f0, {0xc000780000?, 0xc0000003c0?, 0xc000484e50?}) /opt/go_1.18.10/src/io/io.go:476 +0x45 io.copyBuffer({0x7fb0682bb3d8, 0xc0000003c0}, {0xa425c0, 0xc0001f98f0}, {0xc000780000, 0x80000, 0x80000}) /opt/go_1.18.10/src/io/io.go:426 +0x1b2 io.CopyBuffer({0x7fb0682bb3d8?, 0xc0000003c0?}, {0xa425c0?, 0xc0001f98f0?}, {0xc000780000?, 0xc0003aa3e0?, 0xb10000000097d8d3?}) /opt/go_1.18.10/src/io/io.go:399 +0x3c github.com/parvit/qpep/server.handleTcpToQuic({0xa468f8, 0xc0003a44c0}, 0x43fee5?, 0x0, {0x7fb0682f8fe8?, 0xc0000003c0}, {0xa48610?, 0xc000230068}, {0xc0000241f0, 0xd}) /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:245 +0x396 created by github.com/parvit/qpep/server.handleQuicStream /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:121 +0x9ac

goroutine 13530 [IO wait]: internal/poll.runtime_pollWait(0x7fb06837c968, 0x72) /opt/go_1.18.10/src/runtime/netpoll.go:302 +0x89 internal/poll.(pollDesc).wait(0xc0000b8a00?, 0xc0003c2000?, 0x0) /opt/go_1.18.10/src/internal/poll/fd_poll_runtime.go:83 +0x32 internal/poll.(pollDesc).waitRead(...) /opt/go_1.18.10/src/internal/poll/fd_poll_runtime.go:88 internal/poll.(FD).Read(0xc0000b8a00, {0xc0003c2000, 0x1000, 0x1000}) /opt/go_1.18.10/src/internal/poll/fd_unix.go:167 +0x25a net.(netFD).Read(0xc0000b8a00, {0xc0003c2000?, 0xc00026e9a0?, 0x47049e?}) /opt/go_1.18.10/src/net/fd_posix.go:55 +0x29 net.(conn).Read(0xc000176128, {0xc0003c2000?, 0x72320c?, 0xc00006a4c0?}) /opt/go_1.18.10/src/net/net.go:183 +0x45 net/http.(connReader).Read(0xc0000a3050, {0xc0003c2000, 0x1000, 0x1000}) /opt/go_1.18.10/src/net/http/server.go:780 +0x16d bufio.(Reader).fill(0xc000320000) /opt/go_1.18.10/src/bufio/bufio.go:106 +0x103 bufio.(Reader).ReadSlice(0xc000320000, 0x0?) /opt/go_1.18.10/src/bufio/bufio.go:371 +0x2f bufio.(Reader).ReadLine(0xc000320000) /opt/go_1.18.10/src/bufio/bufio.go:400 +0x27 net/textproto.(Reader).readLineSlice(0xc0000a30b0) /opt/go_1.18.10/src/net/textproto/reader.go:57 +0x99 net/textproto.(Reader).ReadLine(...) /opt/go_1.18.10/src/net/textproto/reader.go:38 net/http.readRequest(0xc000176128?) /opt/go_1.18.10/src/net/http/request.go:1029 +0x79 net/http.(conn).readRequest(0xc000126640, {0xa468f8, 0xc000564600}) /opt/go_1.18.10/src/net/http/server.go:988 +0x24a net/http.(conn).serve(0xc000126640, {0xa469a0, 0xc00007bf50}) /opt/go_1.18.10/src/net/http/server.go:1891 +0x32b created by net/http.(Server).Serve /opt/go_1.18.10/src/net/http/server.go:3071 +0x4db

goroutine 13512 [runnable]: net/http.(Server).Serve.func3() /opt/go_1.18.10/src/net/http/server.go:3071 runtime.goexit() /opt/go_1.18.10/src/runtime/asm_amd64.s:1571 +0x1 created by net/http.(Server).Serve /opt/go_1.18.10/src/net/http/server.go:3071 +0x4db

goroutine 13549 [semacquire]: sync.runtime_Semacquire(0xc000396310?) /opt/go_1.18.10/src/runtime/sema.go:56 +0x25 sync.(*WaitGroup).Wait(0xa46930?) /opt/go_1.18.10/src/sync/waitgroup.go:136 +0x52 github.com/parvit/qpep/server.handleQuicStream({0x7fb0682f8fe8?, 0xc0000001e0}) /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:128 +0x9fc github.com/parvit/qpep/server.listenQuicConn.func2() /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:53 +0x79 created by github.com/parvit/qpep/server.listenQuicConn /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:51 +0x4e

goroutine 13537 [runnable]: github.com/parvit/qpep/server.handleTcpToQuic({0xa468f8, 0xc000564180}, 0x43fee5?, 0x0, {0x7fb0682f8fe8?, 0xc0000001e0}, {0xa48610?, 0xc00009e000}, {0xc0014cc0a0, 0xd}) /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:217 +0xfe created by github.com/parvit/qpep/server.handleQuicStream /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:121 +0x9ac

goroutine 13283 [select, 1 minutes]: github.com/Project-Faster/quic-go.(incomingStreamsMap[...]).AcceptStream(0xc00017c070, {0xa46930, 0xc000024090}) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/streams_map_incoming.go:82 +0x125 github.com/Project-Faster/quic-go.(streamsMap).AcceptStream(0xc00025d260, {0xa46930, 0xc000024090}) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/streams_map.go:177 +0xea github.com/Project-Faster/quic-go.(*connection).AcceptStream(0x88fec0?, {0xa46930?, 0xc000024090?}) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/connection.go:2045 +0x2f github.com/parvit/qpep/server.listenQuicConn({0xa48c40, 0xc000047400}) /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:44 +0x72 created by github.com/parvit/qpep/server.listenQuicSession /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:31 +0x45

goroutine 13469 [select]: github.com/Project-Faster/quic-go.(receiveStream).readImpl(0xc0000003c0, {0xc000252000, 0x8000, 0x8000}) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/receive_stream.go:155 +0x74d github.com/Project-Faster/quic-go.(receiveStream).Read(0xc0000003c0, {0xc000252000, 0x8000, 0x8000}) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/receive_stream.go:90 +0xdd io.(LimitedReader).Read(0xc0001f9e78, {0xc000252000?, 0xc000396980?, 0xc000200c00?}) /opt/go_1.18.10/src/io/io.go:476 +0x45 io.copyBuffer({0xa43460, 0xc000396980}, {0xa425c0, 0xc0001f9e78}, {0x0, 0x0, 0x0}) /opt/go_1.18.10/src/io/io.go:426 +0x1b2 io.Copy(...) /opt/go_1.18.10/src/io/io.go:385 net.genericReadFrom({0xa427a0?, 0xc000230068?}, {0xa425c0, 0xc0001f9e78}) /opt/go_1.18.10/src/net/net.go:662 +0x6a net.(TCPConn).readFrom(0xc000230068, {0xa425c0, 0xc0001f9e78}) /opt/go_1.18.10/src/net/tcpsock_posix.go:54 +0x78 net.(*TCPConn).ReadFrom(0xc000230068, {0xa425c0?, 0xc0001f9e78?}) /opt/go_1.18.10/src/net/tcpsock.go:130 +0x36 io.copyBuffer({0xa427a0, 0xc000230068}, {0xa425c0, 0xc0001f9e78}, {0xc000700000, 0x80000, 0x80000}) /opt/go_1.18.10/src/io/io.go:412 +0x14b io.CopyBuffer({0xa427a0?, 0xc000230068?}, {0xa425c0?, 0xc0001f9e78?}, {0xc000700000?, 0x0?, 0xc0003f8cc0?}) /opt/go_1.18.10/src/io/io.go:399 +0x3c github.com/parvit/qpep/server.handleQuicToTcp({0xa468f8, 0xc0003a44c0}, 0x43fee5?, 0x0, {0xa48610?, 0xc000230068}, {0x7fb0682f8fe8?, 0xc0000003c0}, {0xc0000280c0, 0x13}, ...) /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:186 +0x3d6 created by github.com/parvit/qpep/server.handleQuicStream /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:120 +0x89c

goroutine 13467 [semacquire]: sync.runtime_Semacquire(0xc000222260?) /opt/go_1.18.10/src/runtime/sema.go:56 +0x25 sync.(*WaitGroup).Wait(0xa46930?) /opt/go_1.18.10/src/sync/waitgroup.go:136 +0x52 github.com/parvit/qpep/server.handleQuicStream({0x7fb0682f8fe8?, 0xc0000003c0}) /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:128 +0x9fc github.com/parvit/qpep/server.listenQuicConn.func2() /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:53 +0x79 created by github.com/parvit/qpep/server.listenQuicConn /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:51 +0x4e

goroutine 13327 [select]: github.com/Project-Faster/quic-go.(sendQueue).Run(0xc000194180) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/send_queue.go:67 +0xff github.com/Project-Faster/quic-go.(connection).run.func2() /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/connection.go:533 +0x2b created by github.com/Project-Faster/quic-go.(*connection).run /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/connection.go:532 +0x1be

goroutine 13545 [IO wait]: internal/poll.runtime_pollWait(0x7fb0683d7578, 0x72) /opt/go_1.18.10/src/runtime/netpoll.go:302 +0x89 internal/poll.(pollDesc).wait(0xc000386380?, 0xc000800000?, 0x0) /opt/go_1.18.10/src/internal/poll/fd_poll_runtime.go:83 +0x32 internal/poll.(pollDesc).waitRead(...) /opt/go_1.18.10/src/internal/poll/fd_poll_runtime.go:88 internal/poll.(FD).Read(0xc000386380, {0xc000800000, 0x80000, 0x80000}) /opt/go_1.18.10/src/internal/poll/fd_unix.go:167 +0x25a net.(netFD).Read(0xc000386380, {0xc000800000?, 0x0?, 0xc0014ed520?}) /opt/go_1.18.10/src/net/fd_posix.go:55 +0x29 net.(conn).Read(0xc0002300b8, {0xc000800000?, 0xc000579d01?, 0xc000000780?}) /opt/go_1.18.10/src/net/net.go:183 +0x45 io.(LimitedReader).Read(0xc0001d20f0, {0xc000800000?, 0xc000000780?, 0xc000579e50?}) /opt/go_1.18.10/src/io/io.go:476 +0x45 io.copyBuffer({0x7fb0682bb3d8, 0xc000000780}, {0xa425c0, 0xc0001d20f0}, {0xc000800000, 0x80000, 0x80000}) /opt/go_1.18.10/src/io/io.go:426 +0x1b2 io.CopyBuffer({0x7fb0682bb3d8?, 0xc000000780?}, {0xa425c0?, 0xc0001d20f0?}, {0xc000800000?, 0x0?, 0x4548cd?}) /opt/go_1.18.10/src/io/io.go:399 +0x3c github.com/parvit/qpep/server.handleTcpToQuic({0xa468f8, 0xc0003a45c0}, 0x43fee5?, 0x0, {0x7fb0682f8fe8?, 0xc000000780}, {0xa48610?, 0xc0002300b8}, {0xc000024540, 0xd}) /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:245 +0x396 created by github.com/parvit/qpep/server.handleQuicStream /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:121 +0x9ac

goroutine 13335 [select]: github.com/Project-Faster/quic-go.(incomingStreamsMap[...]).AcceptStream(0xc0003ec070, {0xa46930, 0xc000024090}) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/streams_map_incoming.go:82 +0x125 github.com/Project-Faster/quic-go.(streamsMap).AcceptStream(0xc0003da240, {0xa46930, 0xc000024090}) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/streams_map.go:177 +0xea github.com/Project-Faster/quic-go.(*connection).AcceptStream(0x0?, {0xa46930?, 0xc000024090?}) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/connection.go:2045 +0x2f github.com/parvit/qpep/server.listenQuicConn({0xa48c40, 0xc000388800}) /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:44 +0x72 created by github.com/parvit/qpep/server.listenQuicSession /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:31 +0x45

goroutine 13536 [semacquire]: sync.runtime_SemacquireMutex(0x1c?, 0x0?, 0xa42500?) /opt/go_1.18.10/src/runtime/sema.go:71 +0x25 sync.(Mutex).lockSlow(0xc0000283c0) /opt/go_1.18.10/src/sync/mutex.go:162 +0x165 sync.(Mutex).Lock(...) /opt/go_1.18.10/src/sync/mutex.go:81 sync.(RWMutex).Lock(0x11cfdc0?) /opt/go_1.18.10/src/sync/rwmutex.go:139 +0x36 github.com/parvit/qpep/api.(statistics).SetMappedAddress(0x11cfdc0, {0xc000220018, 0x13}, {0xc0014cc0a0, 0xd}) /mnt/dev/src/github.com/parvit/qpep-faster/api/statistics.go:281 +0xa5 github.com/parvit/qpep/server.handleQuicToTcp({0xa468f8, 0xc000564180}, 0x43fee5?, 0x0, {0xa48610?, 0xc00009e000}, {0x7fb0682f8fe8?, 0xc0000001e0}, {0xc000220018, 0x13}, ...) /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:153 +0x11e created by github.com/parvit/qpep/server.handleQuicStream /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:120 +0x89c

goroutine 13511 [runnable]: net/http.(Server).Serve.func3() /opt/go_1.18.10/src/net/http/server.go:3071 runtime.goexit() /opt/go_1.18.10/src/runtime/asm_amd64.s:1571 +0x1 created by net/http.(Server).Serve /opt/go_1.18.10/src/net/http/server.go:3071 +0x4db

goroutine 13542 [semacquire]: sync.runtime_Semacquire(0xc000222490?) /opt/go_1.18.10/src/runtime/sema.go:56 +0x25 sync.(*WaitGroup).Wait(0xa46930?) /opt/go_1.18.10/src/sync/waitgroup.go:136 +0x52 github.com/parvit/qpep/server.handleQuicStream({0x7fb0682f8fe8?, 0xc000000780}) /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:128 +0x9fc github.com/parvit/qpep/server.listenQuicConn.func2() /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:53 +0x79 created by github.com/parvit/qpep/server.listenQuicConn /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:51 +0x4e

goroutine 13546 [chan receive]: github.com/parvit/qpep/server.handleQuicStream.func3() /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:123 +0x36 created by github.com/parvit/qpep/server.handleQuicStream /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:122 +0x9ef

goroutine 13550 [semacquire]: sync.runtime_Semacquire(0xc000222200?) /opt/go_1.18.10/src/runtime/sema.go:56 +0x25 sync.(*WaitGroup).Wait(0xa46930?) /opt/go_1.18.10/src/sync/waitgroup.go:136 +0x52 github.com/parvit/qpep/server.handleQuicStream({0x7fb0682f8fe8?, 0xc0000005a0}) /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:128 +0x9fc github.com/parvit/qpep/server.listenQuicConn.func2() /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:53 +0x79 created by github.com/parvit/qpep/server.listenQuicConn /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:51 +0x4e

goroutine 13544 [select]: github.com/Project-Faster/quic-go.(receiveStream).readImpl(0xc000000780, {0xc000248000, 0x8000, 0x8000}) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/receive_stream.go:155 +0x74d github.com/Project-Faster/quic-go.(receiveStream).Read(0xc000000780, {0xc000248000, 0x8000, 0x8000}) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/receive_stream.go:90 +0xdd io.(LimitedReader).Read(0xc0001f99f8, {0xc000248000?, 0xc0003968e0?, 0xc000047c00?}) /opt/go_1.18.10/src/io/io.go:476 +0x45 io.copyBuffer({0xa43460, 0xc0003968e0}, {0xa425c0, 0xc0001f99f8}, {0x0, 0x0, 0x0}) /opt/go_1.18.10/src/io/io.go:426 +0x1b2 io.Copy(...) /opt/go_1.18.10/src/io/io.go:385 net.genericReadFrom({0xa427a0?, 0xc0002300b8?}, {0xa425c0, 0xc0001f99f8}) /opt/go_1.18.10/src/net/net.go:662 +0x6a net.(TCPConn).readFrom(0xc0002300b8, {0xa425c0, 0xc0001f99f8}) /opt/go_1.18.10/src/net/tcpsock_posix.go:54 +0x78 net.(*TCPConn).ReadFrom(0xc0002300b8, {0xa425c0?, 0xc0001f99f8?}) /opt/go_1.18.10/src/net/tcpsock.go:130 +0x36 io.copyBuffer({0xa427a0, 0xc0002300b8}, {0xa425c0, 0xc0001f99f8}, {0xc000880000, 0x80000, 0x80000}) /opt/go_1.18.10/src/io/io.go:412 +0x14b io.CopyBuffer({0xa427a0?, 0xc0002300b8?}, {0xa425c0?, 0xc0001f99f8?}, {0xc000880000?, 0x0?, 0xc0000e2660?}) /opt/go_1.18.10/src/io/io.go:399 +0x3c github.com/parvit/qpep/server.handleQuicToTcp({0xa468f8, 0xc0003a45c0}, 0x43fee5?, 0x0, {0xa48610?, 0xc0002300b8}, {0x7fb0682f8fe8?, 0xc000000780}, {0xc000028318, 0x13}, ...) /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:186 +0x3d6 created by github.com/parvit/qpep/server.handleQuicStream /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:120 +0x89c

goroutine 13570 [chan receive]: github.com/parvit/qpep/server.handleQuicStream.func3() /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:123 +0x36 created by github.com/parvit/qpep/server.handleQuicStream /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:122 +0x9ef

goroutine 13324 [select]: github.com/Project-Faster/quic-go.(connection).run(0xc000388800) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/connection.go:588 +0x54f created by github.com/Project-Faster/quic-go.(baseServer).handleInitialImpl /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/server.go:518 +0x674

goroutine 13553 [runnable]: github.com/parvit/qpep/server.handleQuicStream.func5() /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:121 runtime.goexit() /opt/go_1.18.10/src/runtime/asm_amd64.s:1571 +0x1 created by github.com/parvit/qpep/server.handleQuicStream /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:121 +0x9ac

goroutine 13554 [chan receive]: github.com/parvit/qpep/server.handleQuicStream.func3() /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:123 +0x36 created by github.com/parvit/qpep/server.handleQuicStream /mnt/dev/src/github.com/parvit/qpep-faster/server/server_network.go:122 +0x9ef

goroutine 13331 [select]: github.com/Project-Faster/quic-go.(connection).run(0xc000047400) /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/connection.go:588 +0x54f created by github.com/Project-Faster/quic-go.(baseServer).handleInitialImpl /root/go/pkg/mod/github.com/!project-!faster/quic-go@v0.0.0-20230209052722-fd67b0616c6d/server.go:518 +0x674`