pg icon indicating copy to clipboard operation
pg copied to clipboard

最新的版本容易出现goroutine 泄漏从而导致程序崩溃

Open DarkiT opened this issue 1 year ago • 7 comments

goroutine 4465 [sleep]:
time.Sleep(0x14101bc0)
        /usr/lib/go/src/runtime/time.go:315 +0xf7
github.com/sigcn/pg/disco/udp.(*UDPConn).RunDiscoMessageSendLoop.func1(0xc000094488, 0xc002953350?, 0xc0016428f8)
        /home/rkonfj/Documents/pg/disco/udp/udp.go:232 +0x18b
created by github.com/sigcn/pg/disco/udp.(*UDPConn).RunDiscoMessageSendLoop in goroutine 4327
        /home/rkonfj/Documents/pg/disco/udp/udp.go:291 +0x7fb

goroutine 4586 [sleep]:
time.Sleep(0xd87bec0)
        /usr/lib/go/src/runtime/time.go:315 +0xf7
github.com/sigcn/pg/disco/udp.(*UDPConn).RunDiscoMessageSendLoop.func1(0xc0005302a8, 0x0?, 0xc0016428f8)
        /home/rkonfj/Documents/pg/disco/udp/udp.go:232 +0x18b
created by github.com/sigcn/pg/disco/udp.(*UDPConn).RunDiscoMessageSendLoop in goroutine 4327
        /home/rkonfj/Documents/pg/disco/udp/udp.go:291 +0x7fb

goroutine 4785 [sleep]:
time.Sleep(0xc751640)
        /usr/lib/go/src/runtime/time.go:315 +0xf7
github.com/sigcn/pg/disco/udp.(*UDPConn).RunDiscoMessageSendLoop.func1(0xc0005300e0, 0x0?, 0xc001642990)
        /home/rkonfj/Documents/pg/disco/udp/udp.go:232 +0x18b
created by github.com/sigcn/pg/disco/udp.(*UDPConn).RunDiscoMessageSendLoop in goroutine 4325
        /home/rkonfj/Documents/pg/disco/udp/udp.go:291 +0x7fb

goroutine 5429 [sleep]:
time.Sleep(0xca2dd00)
        /usr/lib/go/src/runtime/time.go:315 +0xf7
github.com/sigcn/pg/disco/udp.(*UDPConn).RunDiscoMessageSendLoop.func1(0xc0005300c0, 0x0?, 0xc002ec6d84)
        /home/rkonfj/Documents/pg/disco/udp/udp.go:232 +0x18b
created by github.com/sigcn/pg/disco/udp.(*UDPConn).RunDiscoMessageSendLoop in goroutine 4077
        /home/rkonfj/Documents/pg/disco/udp/udp.go:291 +0x7fb

goroutine 5183 [sleep]:
time.Sleep(0xec82e00)
        /usr/lib/go/src/runtime/time.go:315 +0xf7
github.com/sigcn/pg/disco/udp.(*UDPConn).RunDiscoMessageSendLoop.func1(0xc000094338, 0x0?, 0xc002ec6d84)
        /home/rkonfj/Documents/pg/disco/udp/udp.go:232 +0x18b
created by github.com/sigcn/pg/disco/udp.(*UDPConn).RunDiscoMessageSendLoop in goroutine 4077
        /home/rkonfj/Documents/pg/disco/udp/udp.go:291 +0x7fb

DarkiT avatar Nov 18 '24 06:11 DarkiT

有更多的日志信息吗?

贴出的这部分可能并不是问题的根源,可能是其他 goroutine 导致的 panic

rkonfj avatar Nov 18 '24 06:11 rkonfj

有更多的日志信息吗?

贴出的这部分可能并不是问题的根源,可能是其他 goroutine 导致的 panic

我试试,这个错误很长超过了控制台的日志长度,我是在windows上测试的,不太好抓错误日志

DarkiT avatar Nov 18 '24 09:11 DarkiT

v0.8.1 和 v0.8.2 存在资源泄露问题(可能跟这个有关系)

47451a2f8ac02d29d69b57788f77096c7f5e49cd 这个提交修复了它

rkonfj avatar Nov 22 '24 04:11 rkonfj

v0.8.1 和 v0.8.2 存在资源泄露问题(可能跟这个有关系)

47451a2 这个提交修复了它

问题还是存在,间歇性的,看上去似乎与UDP打洞和端口探测有关系。一旦打洞成功这个问题很长时间都不会复现。对了,我是多Wan环境。

DarkiT avatar Nov 26 '24 07:11 DarkiT

v0.8.1 和 v0.8.2 存在资源泄露问题(可能跟这个有关系) 47451a2 这个提交修复了它

问题还是存在,间歇性的,看上去似乎与UDP打洞和端口探测有关系。一旦打洞成功这个问题很长时间都不会复现。对了,我是多Wan环境。

能否使用这个包来处理协程中可能出现的panic的地方 github.com/sourcegraph/conc

DarkiT avatar Nov 28 '24 08:11 DarkiT

可以把标准输出和标准错误重定向到文件,然后把文件传上来。

rkonfj avatar Nov 28 '24 12:11 rkonfj

f348b2a4837ad7ee77f078dda13fe89900dc673c

这个提交修复了一个并发问题,也许会解决这个?

rkonfj avatar Nov 30 '24 08:11 rkonfj