根据论文,candidate应该是有三种情形会脱离candidate的身份。一个是赢得了选举,另一个是被成功的leader contact,以及很长时间没有选出leader。那么在只是收到majority的reject之后,应该是维持candidate状态啊。
所以对于project2ab的TestLeaderElectionOverwriteNewerLogs2AB 这一个test一直有些疑惑。这个里面node 1只是收到majority的reject,为什么会变成follower呢?
很多实现都不完全遵照论文,变成follower也没问题