braft icon indicating copy to clipboard operation
braft copied to clipboard

example/counter/server.cpp 中的 _leader_term 在 leader 重启以后没有正确设置

Open ZTJiu opened this issue 4 years ago • 3 comments

启动单个节点,成为 leader 以后,重启 leader 节点。 _leader_term 在 leader 重启以后没有正确设置,导致 is_leader 函数返回值不符合预期。

ZTJiu avatar Sep 17 '21 10:09 ZTJiu

启动单个节点,成为 leader 以后,重启 leader 节点。 _leader_term 在 leader 重启以后没有正确设置,导致 is_leader 函数返回值不符合预期。

重启 leader 之后,该节点可能已经不是 leader 了。

ehds avatar Sep 17 '21 11:09 ehds

启动单个节点,成为 leader 以后,重启 leader 节点。 _leader_term 在 leader 重启以后没有正确设置,导致 is_leader 函数返回值不符合预期。

重启 leader 之后,该节点可能已经不是 leader 了。

我观察到的结果是重启的节点还是 leader ,但是 leader_term 设置的不正确。导致 is_leader 接口返回值不符合预期。后来改用 node->is_leader() 来判断,可以解决这个问题。

ZTJiu avatar Sep 23 '21 10:09 ZTJiu

直接用node->is_leader()会有问题吧,在on_leader_start调用之前,node->is_leader()可能已经是TRUE了,这个是不是有问题?

JimboLuCN avatar Mar 11 '22 09:03 JimboLuCN