运行socks server时,admin节点panic崩溃
ier005 opened this issue · comments
ier005 commented
版本1.1.0,released on 10 Jun
在运行一段时间后,报错:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x53e5e6]
goroutine 13303 [running]:
github.com/Dliv3/Venom/admin/dispather.localSocks5Server(0x5d0200, 0xc00000e010, 0xc00005e2c0, 0x40, 0xc000110000, 0xc000044000, 0x1, 0x1)
/Users/dlive/Code/Go/src/github.com/Dliv3/Venom/admin/dispather/sender.go:427 +0xb6
created by github.com/Dliv3/Venom/netio.InitTCP.func1
/Users/dlive/Code/Go/src/github.com/Dliv3/Venom/netio/init.go:56 +0x1e1
ier005 commented
看了一波源码,发现问题出在下面的代码上:
Venom/admin/dispather/sender.go
Lines 433 to 435 in e13049c
若是agent节点掉线被删除,对应的peerNodeID已经不存在,则此处会报错,个人认为出现此种情况应该停止监听此端口,即修改下述源码逻辑,在Accept处判断peerNodeID是否仍然合法,并做相应操作(不过仅修改此处无法保证已经被调用的handlerFunc中不出现非法引用?)
Lines 49 to 58 in e13049c
但在package netio
内引入package node
会导致循环引用问题,这样一来就需要对整个代码架构进行一定的修改,个人时间及能力有限,所以希望作者能够对该问题进行修正。。
BTW,在查看源码的过程中发现了上传与下载文件的一个小bug,已提PR。