OpenAtomFoundation / pikiwidb

a high-performance, large-capacity, multi-tenant, data-persistent, strong data consistency based on raft, Redis-compatible elastic KV data storage system based on RocksDB
BSD 3-Clause "New" or "Revised" License
195 stars 63 forks source link

fix: disappearing roles bug #204

Closed longfar-ncy closed 6 months ago

longfar-ncy commented 6 months ago

一个神奇的bug,姑且命名为“消失的角色”。 现象是,在debug时,程序运行在braft中时,PeerId不包含role成员变量,返回到pikiwidb时,却又包含role成员变量;多出来的成员变量造成包含该该类型变量的结构体中,后续的成员变量内存偏移 4,而我们关注的变量受到此偏移的影响。

原因是,braft 和 pikiwidb 引入的 braft/configuration.h 头文件不一样导致。

解决方法是,使用默认方式 install braft,而不采用 cp 的方式