Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

转发ws隧道, 中转机运行一段时间会抛异常 #55

Closed
chueikan opened this issue Jul 29, 2021 · 2 comments
Closed

转发ws隧道, 中转机运行一段时间会抛异常 #55

chueikan opened this issue Jul 29, 2021 · 2 comments
Labels
bug Something isn't working

Comments

@chueikan
Copy link

中转机运行:
ehco -l 0.0.0.0:20000 -r ws://x.x.x.x:20000 -tt ws
大概半小时抛异常, 进程退出. 落地机没有这个问题.

直接运行ehco, 和使用docker运行都会复现, 下面是部分docker日志:

internal/poll.runtime_pollWait(0x7eff551f4b38, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00010b918, 0x72, 0x100, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x1df, 0xc00010b900, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00010b800, 0xc00010b900, 0x4000000000000000, 0x62e, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00010b800, 0xaf5e60, 0xc0000b84d0, 0xc0002d8d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b84c0, 0xaf5e60, 0xc0000b84d0, 0x18, 0xc0002d8de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b84c0, 0xaf5e60, 0xc0000b84d0, 0x7eff551cbc38, 0xc0000b84c0, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b84c0, 0xaf5e60, 0xc0000b84d0, 0xc000348000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b84c0, 0xaf5e60, 0xc0000b84d0, 0xc000348000, 0x1000, 0x1000, 0x668001, 0xc0002d8fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b84c0, 0xaf9f68, 0xc0000b84d0, 0x7fff5ab37f71, 0x1a, 0xc000343f80)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 5908 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc0000b82b8, 0xaf9f68, 0xc00000e4c8, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc0000b82b8, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc0000b82b8)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 3987 [chan receive, 4 minutes]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc0000b8238, 0xaf9f68, 0xc00000e420, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc0000b8238, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc0000b8238)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 6191 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e6b8, 0xaf9f68, 0xc0000b84e0, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e6b8, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e6b8)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 6466 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f6010, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0003efe98, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x73, 0xc0003efe80, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0003efd00, 0xc0003efe80, 0x4000000000000000, 0x2cca, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0003efd00, 0xaf5e60, 0xc0000b86b8, 0xc000035598, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e878, 0xaf5e60, 0xc0000b86b8, 0x18, 0xc0000355e8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e878, 0xaf5e60, 0xc0000b86b8, 0x7eff551cbc38, 0xc00000e878, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e878, 0xaf5e60, 0xc0000b86b8, 0xc0003b1000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e878, 0xaf5e60, 0xc0000b86b8, 0xc0003b1000, 0x1000, 0x1000, 0x668001, 0xc0000357a0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc00000e878, 0xaf9f68, 0xc0000b86b8, 0x7fff5ab37f71, 0x1a, 0xc000573aa0)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 2673 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f4df0, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00053df98, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x9f, 0xc00053df80, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00054e080, 0xc00053df80, 0x4000000000000000, 0x2c54, 0x1, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00054e080, 0xaf5e60, 0xc0000b9090, 0xaf95b8, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000f3c0, 0xaf5e60, 0xc0000b9090, 0x18, 0xc000035de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000f3c0, 0xaf5e60, 0xc0000b9090, 0x7eff551cbc38, 0xc00000f3c0, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000f3c0, 0xaf5e60, 0xc0000b9090, 0xc0003a3000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000f3c0, 0xaf5e60, 0xc0000b9090, 0xc0003a3000, 0x1000, 0x1000, 0x668001, 0xc000035fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000f3c0, 0xaf9f68, 0xc0000b9090, 0x7fff5ab37f71, 0x1a, 0xc0004ea780)
	/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:71 +0x11f

goroutine 5226 [chan receive, 2 minutes]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e668, 0xaf9f68, 0xc0000b8538, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e668, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e668)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 5775 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551fb318, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0004c0c98, 0x72, 0x100, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x15f, 0xc0004c0c80, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00053d380, 0xc0004c0c80, 0x4000000000000000, 0x512, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00053d380, 0xaf5e60, 0xc0000b81e8, 0xc000033d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e390, 0xaf5e60, 0xc0000b81e8, 0x18, 0xc000033de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e390, 0xaf5e60, 0xc0000b81e8, 0x7eff551cbc38, 0xc00000e390, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e390, 0xaf5e60, 0xc0000b81e8, 0xc0000df000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e390, 0xaf5e60, 0xc0000b81e8, 0xc0000df000, 0x1000, 0x1000, 0x668001, 0xc000033fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000e390, 0xaf9f68, 0xc0000b81e8, 0x7fff5ab37f71, 0x1a, 0xc0002be1e0)
	/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:71 +0x11f

goroutine 3526 [IO wait, 4 minutes]:
internal/poll.runtime_pollWait(0x7eff551e6180, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000574598, 0x72, 0x100, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x1b1, 0xc000574580, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000574680, 0xc000574580, 0x4000000000000000, 0x704, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000574680, 0xaf5e60, 0xc0000b9610, 0xc000039598, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b9630, 0xaf5e60, 0xc0000b9610, 0x18, 0xc0000395e8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b9630, 0xaf5e60, 0xc0000b9610, 0x7eff551cbc38, 0xc0000b9630, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b9630, 0xaf5e60, 0xc0000b9610, 0xc0002b2000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b9630, 0xaf5e60, 0xc0000b9610, 0xc0002b2000, 0x1000, 0x1000, 0x668001, 0xc0000397a0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc0000b9630, 0xaf9f68, 0xc0000b9610, 0x7fff5ab37f71, 0x1a, 0xc000572a20)
	/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:71 +0x11f

goroutine 2672 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f4d08, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00054e098, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x33, 0xc00054e080, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00053df80, 0xc00054e080, 0x4000000000000000, 0x1d4a, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00053df80, 0xaf5e60, 0xc00000f3c0, 0xc000039d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b9090, 0xaf5e60, 0xc00000f3c0, 0x18, 0xc000039de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b9090, 0xaf5e60, 0xc00000f3c0, 0x7eff551cbc38, 0xc0000b9090, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b9090, 0xaf5e60, 0xc00000f3c0, 0xc0000e0000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b9090, 0xaf5e60, 0xc00000f3c0, 0xc0000e0000, 0x1000, 0x1000, 0x668001, 0xc000039fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b9090, 0xaf9f68, 0xc00000f3c0, 0x7fff5ab37f71, 0x1a, 0xc0004ea780)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 2639 [chan receive, 4 minutes]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc0000b9068, 0xaf9f68, 0xc00000f390, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc0000b9068, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc0000b9068)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 6305 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f6498, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000368998, 0x72, 0x200, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x20b, 0xc000368980, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0003ee180, 0xc000368980, 0x4000000000000000, 0x1c9a, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0003ee180, 0xaf5e60, 0xc0000b8598, 0xc000038598, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e760, 0xaf5e60, 0xc0000b8598, 0x18, 0xc0000385e8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e760, 0xaf5e60, 0xc0000b8598, 0x7eff551cbc38, 0xc00000e760, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e760, 0xaf5e60, 0xc0000b8598, 0xc000669000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e760, 0xaf5e60, 0xc0000b8598, 0xc000669000, 0x1000, 0x1000, 0x668001, 0xc0000387a0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc00000e760, 0xaf9f68, 0xc0000b8598, 0x7fff5ab37f71, 0x1a, 0xc000572d20)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 5592 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f5618, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000504d98, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0xd3, 0xc000504d80, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000504e80, 0xc000504d80, 0x4000000000000000, 0xac6, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000504e80, 0xaf5e60, 0xc0000b8088, 0xc000037598, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b8090, 0xaf5e60, 0xc0000b8088, 0x18, 0xc0000375e8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b8090, 0xaf5e60, 0xc0000b8088, 0x7eff551cbc38, 0xc0000b8090, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b8090, 0xaf5e60, 0xc0000b8088, 0xc000378000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b8090, 0xaf5e60, 0xc0000b8088, 0xc000378000, 0x1000, 0x1000, 0x668001, 0xc0000377a0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc0000b8090, 0xaf9f68, 0xc0000b8088, 0x7fff5ab37f71, 0x1a, 0xc0002389c0)
	/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:71 +0x11f

goroutine 4058 [IO wait, 4 minutes]:
internal/poll.runtime_pollWait(0x7eff551b8268, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00023b718, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x37, 0xc00023b700, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00023b600, 0xc00023b700, 0x4000000000000000, 0xf7e, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00023b600, 0xaf5e60, 0xc0000b82b0, 0xc000037598, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e4a0, 0xaf5e60, 0xc0000b82b0, 0x18, 0xc0000375e8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e4a0, 0xaf5e60, 0xc0000b82b0, 0x7eff551cbc38, 0xc00000e4a0, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e4a0, 0xaf5e60, 0xc0000b82b0, 0xc000428000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e4a0, 0xaf5e60, 0xc0000b82b0, 0xc000428000, 0x1000, 0x1000, 0x668001, 0xc0000377a0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc00000e4a0, 0xaf9f68, 0xc0000b82b0, 0x7fff5ab37f71, 0x1a, 0xc000086ea0)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 2710 [IO wait, 4 minutes]:
internal/poll.runtime_pollWait(0x7eff551e5ec8, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0004e7898, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x2d, 0xc0004e7880, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004e7980, 0xc0004e7880, 0x4000000000000000, 0x953, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004e7980, 0xaf5e60, 0xc00000f400, 0xc000033d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b90e0, 0xaf5e60, 0xc00000f400, 0x18, 0xc000033de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b90e0, 0xaf5e60, 0xc00000f400, 0x7eff551cbc38, 0xc0000b90e0, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b90e0, 0xaf5e60, 0xc00000f400, 0xc000411000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b90e0, 0xaf5e60, 0xc00000f400, 0xc000411000, 0x1000, 0x1000, 0x668001, 0xc000033fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc0000b90e0, 0xaf9f68, 0xc00000f400, 0x7fff5ab37f71, 0x1a, 0xc0004eaa20)
	/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:71 +0x11f

goroutine 2707 [chan receive, 4 minutes]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000f400, 0xaf9f68, 0xc0000b90e0, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000f400, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000f400)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 5786 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc0000b81f0, 0xaf9f68, 0xc00000e398, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc0000b81f0, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc0000b81f0)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 6465 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551d5628, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0003efc98, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x4f, 0xc0003efc80, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004b8600, 0xc0003efc80, 0x4000000000000000, 0x19ca, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004b8600, 0xaf5e60, 0xc00000e870, 0xc0002d6d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e880, 0xaf5e60, 0xc00000e870, 0x18, 0xc0002d6de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e880, 0xaf5e60, 0xc00000e870, 0x7eff551cbc38, 0xc00000e880, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e880, 0xaf5e60, 0xc00000e870, 0xc0002c7000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e880, 0xaf5e60, 0xc00000e870, 0xc0002c7000, 0x1000, 0x1000, 0x668001, 0xc0002d6fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000e880, 0xaf9f68, 0xc00000e870, 0x7fff5ab37f71, 0x1a, 0xc000573a40)
	/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:71 +0x11f

goroutine 6292 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551e5130, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000368898, 0x72, 0x200, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x209, 0xc000368880, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000368780, 0xc000368880, 0x4000000000000000, 0x173f, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000368780, 0xaf5e60, 0xc00000e768, 0xc0002d5d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b8580, 0xaf5e60, 0xc00000e768, 0x18, 0xc0002d5de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b8580, 0xaf5e60, 0xc00000e768, 0x7eff551cbc38, 0xc0000b8580, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b8580, 0xaf5e60, 0xc00000e768, 0xc0000c8000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b8580, 0xaf5e60, 0xc00000e768, 0xc0000c8000, 0x1000, 0x1000, 0x668001, 0xc0002d5fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b8580, 0xaf9f68, 0xc00000e768, 0x7fff5ab37f71, 0x1a, 0xc000445740)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 4066 [chan receive, 4 minutes]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e4a0, 0xaf9f68, 0xc0000b82b0, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e4a0, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e4a0)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 5367 [chan receive, 2 minutes]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e750, 0xaf9f68, 0xc00000e758, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e750, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e750)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 5422 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x7eff551cd838, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0004a2518, 0x72, 0x100, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x116, 0xc0004a2500, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0003efd80, 0xc0004a2500, 0x4000000000000000, 0x1e2fe, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0003efd80, 0xaf5e60, 0xc0000b86e8, 0xc000033d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b86e0, 0xaf5e60, 0xc0000b86e8, 0x18, 0xc000033de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b86e0, 0xaf5e60, 0xc0000b86e8, 0x7eff551cbc38, 0xc0000b86e0, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b86e0, 0xaf5e60, 0xc0000b86e8, 0xc0000ef000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b86e0, 0xaf5e60, 0xc0000b86e8, 0xc0000ef000, 0x1000, 0x1000, 0x668001, 0xc000033fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b86e0, 0xaf9f68, 0xc0000b86e8, 0x7fff5ab37f71, 0x1a, 0xc000086fc0)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 5398 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x7eff54fe3828, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0003ef818, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x96, 0xc0003ef800, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0003ef700, 0xc0003ef800, 0x4000000000000000, 0x278a, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0003ef700, 0xaf5e60, 0xc00000e780, 0xc000038d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b86a0, 0xaf5e60, 0xc00000e780, 0x18, 0xc000038de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b86a0, 0xaf5e60, 0xc00000e780, 0x7eff551cbc38, 0xc0000b86a0, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b86a0, 0xaf5e60, 0xc00000e780, 0xc0003da000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b86a0, 0xaf5e60, 0xc00000e780, 0xc0003da000, 0x1000, 0x1000, 0x668001, 0xc000038fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b86a0, 0xaf9f68, 0xc00000e780, 0x7fff5ab37f71, 0x1a, 0xc00007b020)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 5330 [chan receive, 2 minutes]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e700, 0xaf9f68, 0xc00000e708, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e700, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e700)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 6293 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551e5218, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000368798, 0x72, 0x100, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x18b, 0xc000368780, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000368880, 0xc000368780, 0x4000000000000000, 0x27d, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000368880, 0xaf5e60, 0xc0000b8580, 0xc0002d4d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e768, 0xaf5e60, 0xc0000b8580, 0x18, 0xc0002d4de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e768, 0xaf5e60, 0xc0000b8580, 0x7eff551cbc38, 0xc00000e768, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e768, 0xaf5e60, 0xc0000b8580, 0xc0003d0000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e768, 0xaf5e60, 0xc0000b8580, 0xc0003d0000, 0x1000, 0x1000, 0x668001, 0xc0002d4fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000e768, 0xaf9f68, 0xc0000b8580, 0x7fff5ab37f71, 0x1a, 0xc000445740)
	/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:71 +0x11f

goroutine 5126 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x7eff551f5c70, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00023a018, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0xe0, 0xc00023a000, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00023a180, 0xc00023a000, 0x4000000000000000, 0xfb5, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00023a180, 0xaf5e60, 0xc0000b8490, 0xc0002d6598, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e558, 0xaf5e60, 0xc0000b8490, 0x18, 0xc0002d65e8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e558, 0xaf5e60, 0xc0000b8490, 0x7eff551cbc38, 0xc00000e558, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e558, 0xaf5e60, 0xc0000b8490, 0xc000593000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e558, 0xaf5e60, 0xc0000b8490, 0xc000593000, 0x1000, 0x1000, 0x668001, 0xc0002d67a0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000e558, 0xaf9f68, 0xc0000b8490, 0x7fff5ab37f71, 0x1a, 0xc0004457a0)
	/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:71 +0x11f

goroutine 5862 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e418, 0xaf9f68, 0xc0000b8270, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e418, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e418)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 6348 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f3f70, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000369998, 0x72, 0x100, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x1a5, 0xc000369980, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000369880, 0xc000369980, 0x4000000000000000, 0xd8a, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000369880, 0xaf5e60, 0xc00000e7b0, 0xc0002d7d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b85f8, 0xaf5e60, 0xc00000e7b0, 0x18, 0xc0002d7de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b85f8, 0xaf5e60, 0xc00000e7b0, 0x7eff551cbc38, 0xc0000b85f8, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b85f8, 0xaf5e60, 0xc00000e7b0, 0xc000250000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b85f8, 0xaf5e60, 0xc00000e7b0, 0xc000250000, 0x1000, 0x1000, 0x668001, 0xc0002d7fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b85f8, 0xaf9f68, 0xc00000e7b0, 0x7fff5ab37f71, 0x1a, 0xc0005730e0)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 5789 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551dfe28, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0004c0d18, 0x72, 0x100, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x161, 0xc0004c0d00, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004c0e00, 0xc0004c0d00, 0x4000000000000000, 0x4ce, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004c0e00, 0xaf5e60, 0xc0000b81f0, 0xc000038d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e398, 0xaf5e60, 0xc0000b81f0, 0x18, 0xc000038de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e398, 0xaf5e60, 0xc0000b81f0, 0x7eff551cbc38, 0xc00000e398, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e398, 0xaf5e60, 0xc0000b81f0, 0xc000349000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e398, 0xaf5e60, 0xc0000b81f0, 0xc000349000, 0x1000, 0x1000, 0x668001, 0xc000038fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000e398, 0xaf9f68, 0xc0000b81f0, 0x7fff5ab37f71, 0x1a, 0xc000087bc0)
	/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:71 +0x11f

goroutine 5925 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551dfb70, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0004c1e18, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0xf7, 0xc0004c1e00, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000574b80, 0xc0004c1e00, 0x4000000000000000, 0x329, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000574b80, 0xaf5e60, 0xc0000b82a0, 0xc0002d2d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e4b0, 0xaf5e60, 0xc0000b82a0, 0x18, 0xc0002d2de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e4b0, 0xaf5e60, 0xc0000b82a0, 0x7eff551cbc38, 0xc00000e4b0, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e4b0, 0xaf5e60, 0xc0000b82a0, 0xc000473000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e4b0, 0xaf5e60, 0xc0000b82a0, 0xc000473000, 0x1000, 0x1000, 0x668001, 0xc0002d2fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000e4b0, 0xaf9f68, 0xc0000b82a0, 0x7fff5ab37f71, 0x1a, 0xc0002becc0)
	/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:71 +0x11f

goroutine 6214 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551cdda8, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00023b418, 0x72, 0x100, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x1e7, 0xc00023b400, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00023b300, 0xc00023b400, 0x4000000000000000, 0x117e, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00023b300, 0xaf5e60, 0xc0000b84e0, 0xc000039d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e6b8, 0xaf5e60, 0xc0000b84e0, 0x18, 0xc000039de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e6b8, 0xaf5e60, 0xc0000b84e0, 0x7eff551cbc38, 0xc00000e6b8, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e6b8, 0xaf5e60, 0xc0000b84e0, 0xc00011c000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e6b8, 0xaf5e60, 0xc0000b84e0, 0xc00011c000, 0x1000, 0x1000, 0x668001, 0xc000039fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc00000e6b8, 0xaf9f68, 0xc0000b84e0, 0x7fff5ab37f71, 0x1a, 0xc000572120)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 5255 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x7eff551dfc58, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000368498, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x2b, 0xc000368480, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000368300, 0xc000368480, 0x4000000000000000, 0x1642, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000368300, 0xaf5e60, 0xc0000b8588, 0xc000037d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e698, 0xaf5e60, 0xc0000b8588, 0x18, 0xc000037de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e698, 0xaf5e60, 0xc0000b8588, 0x7eff551cbc38, 0xc00000e698, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e698, 0xaf5e60, 0xc0000b8588, 0xc000111000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e698, 0xaf5e60, 0xc0000b8588, 0xc000111000, 0x1000, 0x1000, 0x668001, 0xc000037fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc00000e698, 0xaf9f68, 0xc0000b8588, 0x7fff5ab37f71, 0x1a, 0xc00007a300)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 6411 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e818, 0xaf9f68, 0xc00000e820, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e818, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e818)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 6306 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f6580, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0003ee198, 0x72, 0x200, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x20d, 0xc0003ee180, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000368980, 0xc0003ee180, 0x4000000000000000, 0x1fc8, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000368980, 0xaf5e60, 0xc00000e760, 0xc0002d4598, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b8598, 0xaf5e60, 0xc00000e760, 0x18, 0xc0002d45e8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b8598, 0xaf5e60, 0xc00000e760, 0x7eff551cbc38, 0xc0000b8598, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b8598, 0xaf5e60, 0xc00000e760, 0xc0002bb000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b8598, 0xaf5e60, 0xc00000e760, 0xc0002bb000, 0x1000, 0x1000, 0x668001, 0xc0002d47a0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc0000b8598, 0xaf9f68, 0xc00000e760, 0x7fff5ab37f71, 0x1a, 0xc000572d20)
	/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:71 +0x11f

goroutine 5924 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551f4880, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000574b98, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0xf5, 0xc000574b80, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004c1e00, 0xc000574b80, 0x4000000000000000, 0x18d, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004c1e00, 0xaf5e60, 0xc00000e4b0, 0xc0002d7d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b82a0, 0xaf5e60, 0xc00000e4b0, 0x18, 0xc0002d7de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b82a0, 0xaf5e60, 0xc00000e4b0, 0x7eff551cbc38, 0xc0000b82a0, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b82a0, 0xaf5e60, 0xc00000e4b0, 0xc000391000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b82a0, 0xaf5e60, 0xc00000e4b0, 0xc000391000, 0x1000, 0x1000, 0x668001, 0xc0002d7fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b82a0, 0xaf9f68, 0xc00000e4b0, 0x7fff5ab37f71, 0x1a, 0xc0002becc0)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 6215 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551cde90, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00023b318, 0x72, 0x100, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x1e5, 0xc00023b300, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc00023b400, 0xc00023b300, 0x4000000000000000, 0xf80, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc00023b400, 0xaf5e60, 0xc00000e6b8, 0xc0002d8d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b84e0, 0xaf5e60, 0xc00000e6b8, 0x18, 0xc0002d8de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b84e0, 0xaf5e60, 0xc00000e6b8, 0x7eff551cbc38, 0xc0000b84e0, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b84e0, 0xaf5e60, 0xc00000e6b8, 0xc0005fc000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b84e0, 0xaf5e60, 0xc00000e6b8, 0xc0005fc000, 0x1000, 0x1000, 0x668001, 0xc0002d8fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc0000b84e0, 0xaf9f68, 0xc00000e6b8, 0x7fff5ab37f71, 0x1a, 0xc000572120)
	/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:71 +0x11f

goroutine 5371 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x7eff551fb888, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0003ef498, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x86, 0xc0003ef480, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000369700, 0xc0003ef480, 0x4000000000000000, 0xfd4, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000369700, 0xaf5e60, 0xc00000e758, 0xc0002d6d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e750, 0xaf5e60, 0xc00000e758, 0x18, 0xc0002d6de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e750, 0xaf5e60, 0xc00000e758, 0x7eff551cbc38, 0xc00000e750, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e750, 0xaf5e60, 0xc00000e758, 0xc000671000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e750, 0xaf5e60, 0xc00000e758, 0xc000671000, 0x1000, 0x1000, 0x668001, 0xc0002d6fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc00000e750, 0xaf9f68, 0xc00000e758, 0x7fff5ab37f71, 0x1a, 0xc00007ad20)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 6290 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc00000e760, 0xaf9f68, 0xc0000b8598, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc00000e760, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc00000e760)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 6307 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc0000b85a0, 0xaf9f68, 0xc00000e770, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc0000b85a0, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc0000b85a0)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 5926 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551fc9c0, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000574d18, 0x72, 0x100, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x122, 0xc000574d00, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004c1e80, 0xc000574d00, 0x4000000000000000, 0x18d, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004c1e80, 0xaf5e60, 0xc00000e4b8, 0xc000033d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b82a8, 0xaf5e60, 0xc00000e4b8, 0x18, 0xc000033de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b82a8, 0xaf5e60, 0xc00000e4b8, 0x7eff551cbc38, 0xc0000b82a8, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b82a8, 0xaf5e60, 0xc00000e4b8, 0xc000435000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b82a8, 0xaf5e60, 0xc00000e4b8, 0xc000435000, 0x1000, 0x1000, 0x668001, 0xc000033fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b82a8, 0xaf9f68, 0xc00000e4b8, 0x7fff5ab37f71, 0x1a, 0xc0002bed20)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 6346 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc0000b85f8, 0xaf9f68, 0xc00000e7b0, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc0000b85f8, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc0000b85f8)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 5774 [IO wait]:
internal/poll.runtime_pollWait(0x7eff54fe4220, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00053d398, 0x72, 0x100, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x163, 0xc00053d380, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004c0c80, 0xc00053d380, 0x4000000000000000, 0x18ca, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004c0c80, 0xaf5e60, 0xc00000e390, 0xc0002d7598, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b81e8, 0xaf5e60, 0xc00000e390, 0x18, 0xc0002d75e8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b81e8, 0xaf5e60, 0xc00000e390, 0x7eff551cbc38, 0xc0000b81e8, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b81e8, 0xaf5e60, 0xc00000e390, 0xc0003d7000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b81e8, 0xaf5e60, 0xc00000e390, 0xc0003d7000, 0x1000, 0x1000, 0x668001, 0xc0002d77a0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b81e8, 0xaf9f68, 0xc00000e390, 0x7fff5ab37f71, 0x1a, 0xc0002be1e0)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 6295 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551e68c0, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc000368b18, 0x72, 0x200, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x22f, 0xc000368b00, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc000368a00, 0xc000368b00, 0x4000000000000000, 0x17d4, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc000368a00, 0xaf5e60, 0xc00000e770, 0xc0002d4598, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b85a0, 0xaf5e60, 0xc00000e770, 0x18, 0xc0002d45e8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b85a0, 0xaf5e60, 0xc00000e770, 0x7eff551cbc38, 0xc0000b85a0, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b85a0, 0xaf5e60, 0xc00000e770, 0xc000451000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b85a0, 0xaf5e60, 0xc00000e770, 0xc000451000, 0x1000, 0x1000, 0x668001, 0xc0002d47a0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b85a0, 0xaf9f68, 0xc00000e770, 0x7fff5ab37f71, 0x1a, 0xc000445860)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 6055 [chan receive]:
github.com/Ehco1996/ehco/internal/transporter.transport(0xaf9f68, 0xc0000b83d0, 0xaf9f68, 0xc00000e5c8, 0x7fff5ab37f71, 0x1a, 0x2, 0x0)
	/app/internal/transporter/buffer.go:79 +0x13f
github.com/Ehco1996/ehco/internal/transporter.(*Ws).HandleTCPConn(0xc00000e370, 0xc0000b83d0, 0x0, 0x0)
	/app/internal/transporter/ws.go:36 +0x4a5
github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer.func1(0xc00005cff0, 0xc0000b83d0)
	/app/internal/relay/relay.go:106 +0x42
created by github.com/Ehco1996/ehco/internal/relay.(*Relay).RunLocalTCPServer
	/app/internal/relay/relay.go:105 +0xf8

goroutine 6058 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551fc368, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0000b3d18, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x6b, 0xc0000b3d00, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0000b3e80, 0xc0000b3d00, 0x4000000000000000, 0x4385, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0000b3e80, 0xaf5e60, 0xc0000b83d0, 0xc0002d2d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e5c8, 0xaf5e60, 0xc0000b83d0, 0x18, 0xc0002d2de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e5c8, 0xaf5e60, 0xc0000b83d0, 0x7eff551cbc38, 0xc00000e5c8, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e5c8, 0xaf5e60, 0xc0000b83d0, 0xc000314000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e5c8, 0xaf5e60, 0xc0000b83d0, 0xc000314000, 0x1000, 0x1000, 0x668001, 0xc0002d2fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func2(0xaf9f68, 0xc00000e5c8, 0xaf9f68, 0xc0000b83d0, 0x7fff5ab37f71, 0x1a, 0xc000343260)
	/app/internal/transporter/buffer.go:74 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:71 +0x11f

goroutine 5928 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551fabd8, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0000b2018, 0x72, 0x100, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x170, 0xc0000b2000, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004c1f00, 0xc0000b2000, 0x4000000000000000, 0x18d, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004c1f00, 0xaf5e60, 0xc00000e4c8, 0xc0002d5d98, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b82b8, 0xaf5e60, 0xc00000e4c8, 0x18, 0xc0002d5de8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b82b8, 0xaf5e60, 0xc00000e4c8, 0x7eff551cbc38, 0xc0000b82b8, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b82b8, 0xaf5e60, 0xc00000e4c8, 0xc000279000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b82b8, 0xaf5e60, 0xc00000e4c8, 0xc000279000, 0x1000, 0x1000, 0x668001, 0xc0002d5fa0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b82b8, 0xaf9f68, 0xc00000e4c8, 0x7fff5ab37f71, 0x1a, 0xc0002bed80)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 6432 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551d5540, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0004b8618, 0x72, 0x0, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x5b, 0xc0004b8600, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0003efc80, 0xc0004b8600, 0x4000000000000000, 0xd86e, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0003efc80, 0xaf5e60, 0xc00000e880, 0xc000037598, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc00000e870, 0xaf5e60, 0xc00000e880, 0x18, 0xc0000375e8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc00000e870, 0xaf5e60, 0xc00000e880, 0x7eff551cbc38, 0xc00000e870, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc00000e870, 0xaf5e60, 0xc00000e880, 0xc000471000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc00000e870, 0xaf5e60, 0xc00000e880, 0xc000471000, 0x1000, 0x1000, 0x668001, 0xc0000377a0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc00000e870, 0xaf9f68, 0xc00000e880, 0x7fff5ab37f71, 0x1a, 0xc000573a40)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf

goroutine 5788 [IO wait]:
internal/poll.runtime_pollWait(0x7eff551dfd40, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0004c0e18, 0x72, 0x100, 0x0, 0x400000)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.spliceDrain(0x165, 0xc0004c0e00, 0x400000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:96 +0x1a5
internal/poll.Splice(0xc0004c0d00, 0xc0004c0e00, 0x4000000000000000, 0x18a9, 0xc0001cab01, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/splice_linux.go:42 +0x131
net.splice(0xc0004c0d00, 0xaf5e60, 0xc00000e398, 0xc000034598, 0x40a63f, 0xc000010000, 0x9b2800)
	/usr/local/go/src/net/splice_linux.go:39 +0xab
net.(*TCPConn).readFrom(0xc0000b81f0, 0xaf5e60, 0xc00000e398, 0x18, 0xc0000345e8, 0x40ba4a)
	/usr/local/go/src/net/tcpsock_posix.go:48 +0x46
net.(*TCPConn).ReadFrom(0xc0000b81f0, 0xaf5e60, 0xc00000e398, 0x7eff551cbc38, 0xc0000b81f0, 0x1)
	/usr/local/go/src/net/tcpsock.go:103 +0x4d
io.copyBuffer(0xaf5e80, 0xc0000b81f0, 0xaf5e60, 0xc00000e398, 0xc000600000, 0x1000, 0x1000, 0xa2a7c0, 0x1000, 0xaf5e60)
	/usr/local/go/src/io/io.go:409 +0x357
io.CopyBuffer(0xaf5e80, 0xc0000b81f0, 0xaf5e60, 0xc00000e398, 0xc000600000, 0x1000, 0x1000, 0x668001, 0xc0000347a0, 0x92205b)
	/usr/local/go/src/io/io.go:396 +0x8c
github.com/Ehco1996/ehco/internal/transporter.transport.func1(0xaf9f68, 0xc0000b81f0, 0xaf9f68, 0xc00000e398, 0x7fff5ab37f71, 0x1a, 0xc000087bc0)
	/app/internal/transporter/buffer.go:66 +0x17b
created by github.com/Ehco1996/ehco/internal/transporter.transport
	/app/internal/transporter/buffer.go:63 +0xaf```
@Ehco1996 Ehco1996 added the bug Something isn't working label Jul 29, 2021
@Ehco1996
Copy link
Owner

可能是ws连接一直没被关闭,gorouetine泄露了

感谢提供日志

Ehco1996 added a commit that referenced this issue Aug 8, 2021
@Ehco1996
Copy link
Owner

Ehco1996 commented Aug 8, 2021

@van7ish 刚尝试修复了一下 ws 的中转, 有空的话可以尝试一下 7ffa205

@Ehco1996 Ehco1996 closed this as completed Sep 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants