cbeuw / GoQuiet

A Shadowsocks obfuscation plugin utilising domain fronting to evade deep packet inspection
GNU General Public License v3.0
818 stars 116 forks source link

Client crash when server setting are changed #25

Closed johnx7271 closed 6 years ago

johnx7271 commented 6 years ago

I changed the server setting for gq-server: FastOpen, but then the client crashed. When the internet connection temporarily goes off, it also crashes.

Proposition: The client should be more stable, and should not be affected by server side's change.

cbeuw commented 6 years ago

Could you provide the crash log?

lovebell commented 6 years ago

服务器端每隔1、2个小时就退出。以下是nohup.out里的记录, 运行 nohup ss-server -c /etc/shadowsocks-libev/config.json --plugin gq-server --plugin-opts "gqserver.json" &

goroutine 53602 [syscall, 1 minutes]: syscall.Syscall(0x0, 0x14, 0xc420752000, 0x2800, 0xc4200c3c80, 0xc4209bcd78, 0x483b80) /usr/lib/go-1.9/src/syscall/asm_linux_amd64.s:18 +0x5 syscall.read(0x14, 0xc420752000, 0x2800, 0x2800, 0xc4209bcd00, 0x0, 0x0) /usr/lib/go-1.9/src/syscall/zsyscall_linux_amd64.go:756 +0x55 syscall.Read(0x14, 0xc420752000, 0x2800, 0x2800, 0xc42069a200, 0x4, 0xc4209bce00) /usr/lib/go-1.9/src/syscall/syscall_unix.go:162 +0x49 internal/poll.(FD).Read(0xc42069a880, 0xc420752000, 0x2800, 0x2800, 0x0, 0x0, 0x0) /usr/lib/go-1.9/src/internal/poll/fd_unix.go:122 +0x125 net.(netFD).Read(0xc42069a880, 0xc420752000, 0x2800, 0x2800, 0x10200000000, 0x0, 0xc420752000) /usr/lib/go-1.9/src/net/fd_unix.go:202 +0x52 net.(conn).Read(0xc42000e0b8, 0xc420752000, 0x2800, 0x2800, 0x0, 0x0, 0x0) /usr/lib/go-1.9/src/net/net.go:176 +0x6d io.ReadAtLeast(0x7f4fdb293080, 0xc42000e0b8, 0xc420752000, 0x2800, 0x2800, 0x1, 0x0, 0x500, 0x0) /usr/lib/go-1.9/src/io/io.go:309 +0x86 main.(ssPair).serverToRemote(0xc42000c140) /home/andy/go/src/github.com/cbeuw/GoQuiet/cmd/gq-server/gq-server.go:81 +0xdd created by main.dispatchConnection.func2 /home/andy/go/src/github.com/cbeuw/GoQuiet/cmd/gq-server/gq-server.go:114 +0x115

goroutine 53814 [syscall]: syscall.Syscall(0x0, 0x13, 0xc420833000, 0x2800, 0xc420611200, 0xc4205d0d78, 0x483b80) /usr/lib/go-1.9/src/syscall/asm_linux_amd64.s:18 +0x5 syscall.read(0x13, 0xc420833000, 0x2800, 0x2800, 0xc4205d0d00, 0x0, 0x0) /usr/lib/go-1.9/src/syscall/zsyscall_linux_amd64.go:756 +0x55 syscall.Read(0x13, 0xc420833000, 0x2800, 0x2800, 0xc42069ac80, 0xc420611200, 0xc4205d0e00) /usr/lib/go-1.9/src/syscall/syscall_unix.go:162 +0x49 internal/poll.(FD).Read(0xc42069b280, 0xc420833000, 0x2800, 0x2800, 0x0, 0x0, 0x0) /usr/lib/go-1.9/src/internal/poll/fd_unix.go:122 +0x125 net.(netFD).Read(0xc42069b280, 0xc420833000, 0x2800, 0x2800, 0x10200000000, 0x0, 0xc420833000) /usr/lib/go-1.9/src/net/fd_unix.go:202 +0x52 net.(conn).Read(0xc42000e160, 0xc420833000, 0x2800, 0x2800, 0x0, 0x0, 0x0) /usr/lib/go-1.9/src/net/net.go:176 +0x6d io.ReadAtLeast(0x7f4fdb293080, 0xc42000e160, 0xc420833000, 0x2800, 0x2800, 0x1, 0x0, 0x900, 0x0) /usr/lib/go-1.9/src/io/io.go:309 +0x86 main.(ssPair).serverToRemote(0xc42000c2e0) /home/andy/go/src/github.com/cbeuw/GoQuiet/cmd/gq-server/gq-server.go:81 +0xdd created by main.dispatchConnection.func2 /home/andy/go/src/github.com/cbeuw/GoQuiet/cmd/gq-server/gq-server.go:114 +0x115 2018-03-26 14:12:36 ERROR: plugin service exit unexpectedly

另一部服务器, goroutine 99340 [running]: internal/poll.(fdMutex).rwunlock(0xc4206b0400, 0xc420187001, 0xc4201905c0) /usr/lib/go-1.9/src/internal/poll/fd_mutex.go:177 +0x10c internal/poll.(FD).readUnlock(0xc4206b0400) /usr/lib/go-1.9/src/internal/poll/fd_mutex.go:229 +0x32 internal/poll.(FD).Read(0xc4206b0400, 0xc420943800, 0x2800, 0x2800, 0x0, 0x60a520, 0xc420010070) /usr/lib/go-1.9/src/internal/poll/fd_unix.go:132 +0x1bc net.(netFD).Read(0xc4206b0400, 0xc420943800, 0x2800, 0x2800, 0x10200000000, 0x0, 0xc420943800) /usr/lib/go-1.9/src/net/fd_unix.go:202 +0x52 net.(conn).Read(0xc42000e478, 0xc420943800, 0x2800, 0x2800, 0x0, 0x0, 0x0) /usr/lib/go-1.9/src/net/net.go:176 +0x6d io.ReadAtLeast(0x7f21fad45080, 0xc42000e478, 0xc420943800, 0x2800, 0x2800, 0x1, 0x0, 0x500, 0x0) /usr/lib/go-1.9/src/io/io.go:309 +0x86 main.(ssPair).serverToRemote(0xc42000caa0) /home/andy/go/src/github.com/cbeuw/GoQuiet/cmd/gq-server/gq-server.go:81 +0xdd created by main.dispatchConnection.func2 /home/andy/go/src/github.com/cbeuw/GoQuiet/cmd/gq-server/gq-server.go:114 +0x115 2018-03-27 02:45:19 ERROR: plugin service exit unexpectedly

连接时状态还是非常稳定的,收看视频很稳定,干扰比SS和SSR少很多,谢谢! 补充,中断多数发生在持续观看视频流时。

johnx7271 commented 6 years ago

I was talking about the client side. There is very little in the log, the only log I found is by ss-local, nothing for gq-client-plugin. The client I use is the shadowsocks-libev version.

cbeuw commented 6 years ago

@kimw @johnx7271 @yhwfr1 I couldn't reproduce your crashes but I believe it's a memory leak. I changed some suspicous code and released a new version, but again I have no way of tesing if this is actually fixed.

lovebell commented 6 years ago

服务器内存溢出的问题在1.1.2里已经解决,谢谢!