Yiteng Niu
Yiteng Niu
版本:v1.1.2 环境:进程内只有单个raft group,共有5个节点,负载较高。 现象:一台follower在on_apply时发现数据有问题。 apply前后几个小时内没有发生过leader切换。 leader和其它3台节点的数据正确。 经过分析发现segment中的数据与checksum一致,可以确定不是磁盘损坏造成的,应该是落盘前计算checksum时的数据就有问题。 raft日志大小 27533 字节。发现数据中总共有7处数据被损坏,分别是几处1、2、4字节的修改。 被修改的数据如下,3列分别是 偏移量,正确数据,错误数据。 std::map reps = { { 0x2fb1, { "\x6f\x72\x2f\x73" /* "or/s" */, "\x21\x5c\x8d\x76" } }, { 0x2fb7, { "\x5f\x61"...
看起来是调试用到的?但是在编译时没办法通过设置环境变量CFLAGS=-DNDEBUG屏蔽掉,设置这几个signal有什么用意吗? https://github.com/Tencent/phxpaxos/blob/master/src/communicate/tcp/tcp.cpp#L101