host A
host B
host A 发起的voting term是884, host B的voting term是824,hostA 拒绝B的voting
host B的lastLogTerm 是15,host A lastLogTerm是0,hostB 拒绝A 的voting
这样陷入leader voting的死循环,导致partition的leader选不出来
最后重启hostA 解决
host A
host B
host A 发起的voting term是884, host B的voting term是824,hostA 拒绝B的voting
host B的lastLogTerm 是15,host A lastLogTerm是0,hostB 拒绝A 的voting
这样陷入leader voting的死循环,导致partition的leader选不出来
最后重启hostA 解决
good catch. 应该是哪里有问题的.
不过是不是还可以考虑下C? A, B互相不认的情况下, C如果投了B, 其实B还是可以获得2票成为leader的?
当时没仔细查C的日志,当时情况是leader一直没选出来,才采取重启的策略
另外有个问题,partition 发起leader选举,是A,B,C同时发voting request吗,还是都随机sleep一段时间后,谁先醒谁voting?看日志像是前者
后者, 不过随机的时间间隔在 1s左右(After sleeping a random period betwen [500ms, 2s]), 可能日志看起来像前者.