{"push_id":1234186172,"size":1,"distinct_size":1,"ref":"refs/heads/raft-stuck-on-startup","head":"e3031a90d31266cd950b3fffb9a31e38bc8c159a","before":"aed4bbddefc3d56694692ddc6b9ce2c0169f7d83","commits":[{"sha":"e3031a90d31266cd950b3fffb9a31e38bc8c159a","author":{"name":"Aaron Lehmann","email":"ab01047e91402f1a4542861b1076cf31bcc38777@docker.com"},"message":"raft: Fix infinite election loop\n\nIt looks like the election loops on startup are caused by something\nproposing a value before all entries in the log have become committed.\nThis would cause ApplyStoreActions to try and get a lock on the raft\nstore, while processInternalRaftRequest is holding the lock (since it's\ncalled by the memory store with the lock held). This situation is a\ndeadlock. It blocks the loop in Node.Run and prevents further\nparticipation in the cluster.\n\nTo try and solve the issue, don't signal that the local node has become\nthe leader until it has committed all the uncommitted entries from\nbefore. Also, block proposals until it is caught up.\n\nSigned-off-by: Aaron Lehmann <aaron.lehmann@docker.com>","distinct":true,"url":"https://api.github.com/repos/aaronlehmann/swarmkit/commits/e3031a90d31266cd950b3fffb9a31e38bc8c159a"}]}
{"actor":{"display_login":"aaronlehmann"}}