Description
In RATIS-2162, we solved a deadlock problem, but after observing for a few days, there may still be potential deadlock problems elsewhere.
The main reason for deadlock is to hold a lock and wait for a future.
So I suggest waiting for the future outside the lock as much as possible, which should avoid deadlocks
Currently, I found that calling changeToFollower in the following functions causes the above situation:
- RaftServerImpl.appendEntries
- RaftServerImpl.RequestVote
- checkAndInstallSnapshot
Attachments
Attachments
Issue Links
- links to