Return-Path: X-Original-To: apmail-zookeeper-dev-archive@www.apache.org Delivered-To: apmail-zookeeper-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7AF357141 for ; Thu, 11 Aug 2011 14:41:50 +0000 (UTC) Received: (qmail 13500 invoked by uid 500); 11 Aug 2011 14:41:50 -0000 Delivered-To: apmail-zookeeper-dev-archive@zookeeper.apache.org Received: (qmail 13264 invoked by uid 500); 11 Aug 2011 14:41:49 -0000 Mailing-List: contact dev-help@zookeeper.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@zookeeper.apache.org Delivered-To: mailing list dev@zookeeper.apache.org Received: (qmail 13247 invoked by uid 99); 11 Aug 2011 14:41:49 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 11 Aug 2011 14:41:49 +0000 X-ASF-Spam-Status: No, hits=-2000.8 required=5.0 tests=ALL_TRUSTED,RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 11 Aug 2011 14:41:47 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 4CE7CB7F9F for ; Thu, 11 Aug 2011 14:41:27 +0000 (UTC) Date: Thu, 11 Aug 2011 14:41:27 +0000 (UTC) From: "Camille Fournier (JIRA)" To: dev@zookeeper.apache.org Message-ID: <834977803.27937.1313073687311.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <1084958107.6331.1312411047199.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (ZOOKEEPER-1144) ZooKeeperServer not starting on leader due to a race condition MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/ZOOKEEPER-1144?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13083137#comment-13083137 ] Camille Fournier commented on ZOOKEEPER-1144: --------------------------------------------- Vishal, can you just explain quickly why moving the ackSet.add to its new location (above waitForEpochAck but below the LearnerCnxAcceptor start) will fix the bug as you described it in the bug report? I'm not super familiar with this part of the code, but if you can just point it out to me I'm happy to +1 this and check it in asap so our builds will stop failing. > ZooKeeperServer not starting on leader due to a race condition > -------------------------------------------------------------- > > Key: ZOOKEEPER-1144 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1144 > Project: ZooKeeper > Issue Type: Bug > Affects Versions: 3.4.0 > Reporter: Vishal Kher > Assignee: Vishal Kher > Priority: Blocker > Fix For: 3.4.0 > > Attachments: ZOOKEEPER-1144.patch > > > I have found one problem that is causing QuorumPeerMainTest:testQuorum to fail. This test uses 2 ZK servers. > The test is failing because leader is not starting ZooKeeperServer after leader election. so everything halts. > With the new changes, the server is now started in Leader.processAck() which is called from LeaderHandler. processAck() starts ZooKeeperServer if majority have acked NEWLEADER. The leader puts its ack in the the ackSet in Leader.lead(). Since processAck() is called from LearnerHandler it can happen that the learner's ack is processed before the leader is able to put its ack in the ackSet. When LearnerHandler invokes processAck(), the ackSet for newLeaderProposal will not have quorum (in this case 2). As a result, the ZooKeeperServer is never started on the Leader. > The leader needs to ensure that its ack is put in ackSet before starting LearnerCnxAcceptor or invoke processAck() itself after adding to ackSet. I haven't had time to go through the ZAB2 changes so I am not too familiar with the code. Can Ben/Flavio fix this? -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira