Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test: local cluster of 6 nodes, leader elected + 5 followers failover fails #3

Open
AVVS opened this issue May 7, 2015 · 3 comments

Comments

@AVVS
Copy link

AVVS commented May 7, 2015

Basically I create a local cluster, first boot a leader, then other nodes, then leader joins other nodes.

After that I kill the leader using .close() - and then its a madness of 5 followers that became candidates, but none of them can get the votes in more than 10 seconds.

Here are some logs

  ✔ 4) add another standby node, make sure it joins cluster (556 ms)
leader tcp+msgpack://localhost:8080
follower tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
follower tcp+msgpack://localhost:8090
  ✔ 5) leader leaves (11 ms)
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 1, voteGranted: true }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 1, voteGranted: true }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 1, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 3, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 3, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 3, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 3, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 3, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 3, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 3, voteGranted: true }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
follower tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 4, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 3, voteGranted: true }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 3, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 3, voteGranted: true }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 3, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 4, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 3, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 3, voteGranted: true }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 4, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 4, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 3, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 4, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 4, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 4, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 4, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 4, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 4, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 4, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 4, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 4, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 4, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 5, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 6, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 6, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 7, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 7, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 9, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 8, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 11, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 9, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 10, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 11, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 11, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 11, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 10, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 11, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 11, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 11, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 11, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 11, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 11, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 11, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 11, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 11, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 11, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 13, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 12, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 13, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 14, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 14, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 15, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 17, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 17, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 15, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 17, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 17, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 17, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 17, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 17, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 17, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 16, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 17, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 17, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 17, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 17, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 17, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 18, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 18, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 19, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 21, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 21, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 21, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 21, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 21, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 21, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 21, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 19, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 21, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 21, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 21, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 21, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 20, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 23, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 21, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 21, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 24, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 24, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 24, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 24, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 24, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 24, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 24, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 24, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 24, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 24, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 22, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 24, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 24, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 24, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 23, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 25, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 24, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 24, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 25, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 25, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 28, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 28, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 28, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 28, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 28, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 28, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 28, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 28, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 26, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 28, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 28, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 28, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 30, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 30, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 30, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 30, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 30, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 27, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 30, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 30, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 30, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 30, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 30, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 30, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 30, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 29, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 30, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 30, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 30, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 30, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 30, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 31, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 33, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 32, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 35, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 35, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 33, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 35, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 34, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 35, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 35, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 35, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 35, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 35, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 34, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 35, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 35, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 35, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 35, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 36, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 36, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 39, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 39, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 39, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 39, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 37, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 39, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 39, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 39, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 39, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 41, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 38, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 41, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 39, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 41, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 39, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 41, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 39, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 39, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 41, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 39, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 41, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 41, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 39, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 41, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 41, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 42, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 40, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 41, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 43, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 43, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 41, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 43, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 41, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 41, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 41, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 43, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 41, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 43, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 43, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 43, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 43, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 45, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 43, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 45, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 45, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 46, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 42, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 43, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 43, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 43, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 46, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 43, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 43, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 45, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 45, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8084:  { term: 45, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 47, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 45, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 47, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8082:  { term: 46, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 47, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 45, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 45, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 44, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8083:  { term: 46, voteGranted: false }
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
@AVVS
Copy link
Author

AVVS commented May 7, 2015

On the other run, its a different case: leader gets elected, but its state is not properly propagated to the other nodes:

stopped tcp+msgpack://localhost:8080
follower tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
follower tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 1, voteGranted: true }
Broadcast resp to node tcp+msgpack://localhost:8081:  { term: 1, voteGranted: true }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
Broadcast resp to node tcp+msgpack://localhost:8090:  { term: 2, voteGranted: false, reason: 'too soon' }
stopped tcp+msgpack://localhost:8080
leader tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090

@AVVS
Copy link
Author

AVVS commented May 7, 2015

Basically it drops down to the fact, that all the followers become candidates at the same time and lock down their vote for themselves.

leader tcp+msgpack://localhost:8080
follower tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
follower tcp+msgpack://localhost:8090
  ✔ 6) leader leaves (9 ms)
stopped tcp+msgpack://localhost:8080
follower tcp+msgpack://localhost:8081
follower tcp+msgpack://localhost:8082
follower tcp+msgpack://localhost:8083
follower tcp+msgpack://localhost:8084
follower tcp+msgpack://localhost:8090
Peers persisted on tcp+msgpack://localhost:8084 5
Peers persisted on tcp+msgpack://localhost:8082 5
Vote response for tcp+msgpack://localhost:8084 { term: 1, voteGranted: true }
Peers persisted on tcp+msgpack://localhost:8090 5
Peers persisted on tcp+msgpack://localhost:8081 5
Vote response for tcp+msgpack://localhost:8084 { term: 1, voteGranted: true }
Vote response for tcp+msgpack://localhost:8084 { term: 1, voteGranted: true }
Vote response for tcp+msgpack://localhost:8084 { term: 1, voteGranted: true }
Peers persisted on tcp+msgpack://localhost:8083 5
stopped tcp+msgpack://localhost:8080
candidate tcp+msgpack://localhost:8081
candidate tcp+msgpack://localhost:8082
candidate tcp+msgpack://localhost:8083
candidate tcp+msgpack://localhost:8084
candidate tcp+msgpack://localhost:8090

@AVVS
Copy link
Author

AVVS commented May 7, 2015

@pgte the whole voting and reelection part really feels broken. Basically to simulate what I'm experiencing what one needs to do is simply kill the leader during the tests. Then in 70% of the cases madness will start happening.

I've partially remedied this by adjusting voting, to make sure that the nodes actually vote for the other nodes, if the request term is higher than the local election term.

This is an updated local vote counter, takes into account late responses from earlier terms

    function onBroadcastResponse(err, args) {
      if (args) {
        var currentTerm = self.node.currentTerm();
        if (args.voteGranted && currentTerm === args.term) {
          votedForMe ++;
          verifyMajority();
        }
      }
    }

And in state.js

S.onRequestVote = function onRequestVote(args, cb) {
  var self = this;
  var state = this.node.commonState.persisted;
  var currentTerm = state.currentTerm;
  var electionTerm = args.term;

  if (electionTerm < currentTerm) {
    return callback(false);
  }

  // update to the latest term
  if (electionTerm > currentTerm) {
    state.currentTerm = currentTerm = electionTerm;
    state.votedFor = false;
  }

  if (!state.votedFor || state.votedFor == args.candidateId) {
    var lastLog = state.log.last();
    if (lastLog && lastLog.term < args.lastLogTerm) {
      callback(true);
    }
    else if (args.lastLogIndex >= state.log.length()) {
      callback(true);
    }
    else {
      callback(false);
    }
  }
  else {
    callback(false);
  }

  function callback(grant) {
    if (grant) {
      state.votedFor = args.candidateId;
      self.node.emit('vote granted', state.votedFor);
    }
    cb(null, { term: currentTerm, voteGranted: grant });
  }
};

One thing I'm not sure of is how updating the local term without appending a log entry affects the node's state, but I believe this should be fine

Anyway, even after these changes there are more problems:

In Extremely rare cases I've seen 2 leaders pop up at the same time: state snapshot is taken every 200 ms. And after 2 leaders had been elected they start installing their snapshot, even on the other leader node and we end up as all followers without the leader

stopped - tcp+msgpack://localhost:8080
candidate - tcp+msgpack://localhost:8081
candidate - tcp+msgpack://localhost:8082
follower - tcp+msgpack://localhost:8083
leader - tcp+msgpack://localhost:8084
leader - tcp+msgpack://localhost:8090
---
stopped - tcp+msgpack://localhost:8080
follower - tcp+msgpack://localhost:8081
follower - tcp+msgpack://localhost:8082
follower - tcp+msgpack://localhost:8083
follower - tcp+msgpack://localhost:8084
follower - tcp+msgpack://localhost:8090
---
stopped - tcp+msgpack://localhost:8080
leader - tcp+msgpack://localhost:8081
candidate - tcp+msgpack://localhost:8082
candidate - tcp+msgpack://localhost:8083
candidate - tcp+msgpack://localhost:8084
candidate - tcp+msgpack://localhost:8090
---
stopped - tcp+msgpack://localhost:8080
follower - tcp+msgpack://localhost:8081
follower - tcp+msgpack://localhost:8082
follower - tcp+msgpack://localhost:8083
follower - tcp+msgpack://localhost:8084
follower - tcp+msgpack://localhost:8090

Often peer outgoing request queue is stuck, which I believe is the root of the problem. Callback is not getting invoked on the specific request, and, therefore, leader can not propagate it's election to candidates, therefore they are stuck requesting the votes. Other case would be that every candidate has actually stopped requesting votes, because the outgoing pipe is also "stuck". I'm looking why the callback is not getting called (one thing I've noticed that there is no listener for connection close event, but it shouldnt be the case during local tests). I will be trying to trace it back to the receiving node and see where it gets stuck there

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant