chain33
chain33 copied to clipboard
chain33正常运行时假死
- 比特元节点,正常同步过程中程序突然假死,通过pprof分析系统协程数量不断上升

-
假死状态时, version, net is_sync, block last_header等命令可正常访问, mempool系列命令, net info卡死
-
手动Ctrl+C停止前台进程,程序没有退出,反而恢复为正常运行状态
目前追踪到假死时, 协程间存在系统调用死锁,其中一个是写日志操作,导致整个系统所有写日志阻塞,由于mempool是单线程模式,和mempool交互的协程阻塞无法处理,即协程数持续增加

正常同步一段时间问题必现,目前环境是WSL下的ubuntu18.04,WSL1对linux内核支持不完备,大概是这个问题,后续保持跟踪
mac 电脑也有这样的情况