33cn / chain33

高度模块化, 遵循 KISS原则的区块链开发框架

Home Page:https://chain.33.cn

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

chain33正常运行时假死

bysomeone opened this issue · comments

  • 比特元节点,正常同步过程中程序突然假死,通过pprof分析系统协程数量不断上升

image

  • 假死状态时, version, net is_sync, block last_header等命令可正常访问, mempool系列命令, net info卡死

  • 手动Ctrl+C停止前台进程,程序没有退出,反而恢复为正常运行状态

目前追踪到假死时, 协程间存在系统调用死锁,其中一个是写日志操作,导致整个系统所有写日志阻塞,由于mempool是单线程模式,和mempool交互的协程阻塞无法处理,即协程数持续增加

image

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

mac 电脑也有这样的情况