[ https://issues.apache.org/jira/browse/ZOOKEEPER-2?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Flavio Paiva Junqueira updated ZOOKEEPER-2: ------------------------------------------- Attachment: patch-le-polish This is a tentative patch to fix the problems pointed out on QuorumPeer and FastLeaderElection. 1- Makes logicalclock volatile; 2- Creates accessor methods for currentVote and state, and enforce their use; 3- Accessor methods are synchronized. -F > Synchronization issues in QuorumPeer and FastLeader election > ------------------------------------------------------------ > > Key: ZOOKEEPER-2 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2 > Project: Zookeeper > Issue Type: Bug > Components: leaderElection > Reporter: Benjamin Reed > Assignee: Flavio Paiva Junqueira > Attachments: patch-le-polish > > > There are a couple of cases of member variables that need to be marked > volatile or surrounded in a synchronization block. A couple of examples are: > * QuorumPeer state should be synchronous > * currentVote in QuorumPeer is marked volatile, but when it's members are > often accessed individually as if they were in an atomic unit. Such code > should be changed to get a reference to the currentVote and they access > members through that reference. > * It looks like logicalClock in FastLeaderElection should be volatile. It > should either be fixed or commented to explain why it doesn't need to be. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.