【环境】
$ uname -a
Linux netcoreSdbServer3 3.2.0-115-generic #157-Ubuntu SMP Tue Oct 25 16:32:19 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/issue
Ubuntu 12.04.5 LTS \n \l
$ sequoiadb --version
SequoiaDB version: 1.12.5
Release: 22138
2016-02-23-16.08.26(Enterprise)
【问题描述】
检查用户的系统时,发现有一个节点宕掉,进一步检查sdbdiag.log发现如下信息:
2016-12-07-13.16.53.380237 Level:EVENT
PID:10153 TID:10153
Function:deactive Line:242
File:SequoiaDB/engine/cls/clsReplicateSet.cpp
Message:
Begin to wait repl bucket empty[bucket size: 0, all size: 0, agent number: 0]
2016-12-07-13.16.53.380372 Level:EVENT
PID:10153 TID:10153
Function:deactive Line:246
File:SequoiaDB/engine/cls/clsReplicateSet.cpp
Message:
Wait repl bucket empty completed
(中间没有任何 ERROR )
2016-12-07-13.21.54.362972 Level:ERROR
PID:10153 TID:10153
Function:final Line:67
File:SequoiaDB/engine/pmd/pmdMemPool.cpp
Message:
MemPool has memory leak: 1024
2016-12-07-13.21.54.796447 Level:EVENT
PID:10153 TID:10153
Function:pmdMasterThreadMain Line:348
File:SequoiaDB/engine/pmd/pmdMain.cpp
Message:
Stop sequoiadb, exit code: -10
没有产生任何 trap 文件。
【解决方法】
boost asio抛出异常导致节点退出。
节点退出前会检测MemPool的内存是否全部释放,由于是捕获boost异常而退出的,有内存未是否是正常的。
非必现问题,怀疑是boost库的问题,已无法定位,可以恢复数据节点。
SequoiaDB在2.0升级了boost库,提升了可靠性。
【参考链接】
错误码
常见错误处理指南