[
https://issues.apache.org/jira/browse/ZOOKEEPER-822?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12900108#action_12900108
]
Vishal K commented on ZOOKEEPER-822:
------------------------------------
I am suspecting that one of the node (10.17.119.101) is not sending the
notification to the other node. sendNotifications() is called to send
notification to all peers. This functions enteres the notification in
sendqueue. However, either the entry was not put in the queue (sendqueue.offer
failed) or the thread that polls sendqueue did not wake up. I am not sure what
the cause is yet.
I had added extra debug messages. Three messages are of main interest:
1. in sendNotifications(): Print "IN FLE sending notification to server id =
1" for each server. Also print "proposedLeader, proposedZxid, logicalclock"
2. In FastLeaderElection.lookForLeader() print "Updating proposa" before
calling upgradeProposal if (totalOrderPredicate(n.leader, n.zxid, proposedZxid)
is true
3. in WorkerSender.process(), log - LOG.info("WorkSender.process() QUEUEING
m.state= " + m.state + " m.leader=" + m.leader + " m.sid=" + m.sid);
Suppporting log entries from 10.17.119.101-zookeeper.log. I have added
description inline..
------------------
2010-08-18 14:53:56,451 - INFO
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@475] - IN FLE sending
notification to server id = 1
2010-08-18 14:53:56,451 - INFO
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@476] - proposedLeader,
proposedZxid, logicalclock 0343597383684
2010-08-18 14:53:56,452 - INFO [WorkerSender
Thread:fastleaderelection$messenger$workersen...@352] - WorkSender.process()
QUEUEING m.state= LOOKING m.leader=0 m.sid=1
2010-08-18 14:53:56,452 - DEBUG [WorkerSender Thread:quorumcnxmana...@347] -
Opening channel to server 1
2010-08-18 14:53:56,453 - INFO
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@475] - IN FLE sending
notification to server id = 2
2010-08-18 14:53:56,453 - INFO
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@476] - proposedLeader,
proposedZxid, logicalclock 0343597383684
2010-08-18 14:53:56,453 - INFO
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@690] - Notification: 1,
34359738368, 4, 0, LOOKING, LOOKING, 1
2010-08-18 14:53:56,454 - DEBUG
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@496] - id: 1, proposed id:
0, zxid: 34359738368, proposed zxid: 34359738368
2010-08-18 14:53:56,454 - INFO
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@710] - Updating proposal
2010-08-18 14:53:56,454 - INFO [WorkerSender Thread:quorumcnxmana...@162] -
Have smaller server identifier, so dropping the connection: (1, 0)
2010-08-18 14:53:56,455 - INFO [WorkerSender
Thread:fastleaderelection$messenger$workersen...@352] - WorkSender.process()
QUEUEING m.state= LOOKING m.leader=0 m.sid=2
2010-08-18 14:53:56,458 - DEBUG [WorkerSender Thread:quorumcnxmana...@347] -
Opening channel to server 2
2010-08-18 14:53:56,458 - WARN [Thread-19:quorumcnxmanager$recvwor...@659] -
Connection broken:
java.io.IOException: Channel eof
at
org.apache.zookeeper.server.quorum.QuorumCnxManager$RecvWorker.run(QuorumCnxManager.java:631)
2010-08-18 14:53:56,459 - INFO
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@475] - IN FLE sending
notification to server id = 0
2010-08-18 14:53:56,460 - INFO
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@476] - proposedLeader,
proposedZxid, logicalclock 1343597383684
***** The above line shows that this node (server 0) is going to vote for 1.
see - proposedLeader, proposedZxid, logicalclock 1 34359738368 4 Forgot to add
spaces in the message :-) ****
2010-08-18 14:53:56,460 - DEBUG [Thread-1:quorumcnxmanager$liste...@446] -
Connection request /10.17.119.102:41597
2010-08-18 14:53:56,461 - DEBUG [Thread-1:quorumcnxmanager$liste...@449] -
Connection request: 0
2010-08-18 14:53:56,461 - DEBUG [Thread-1:quorumcnxmanager$sendwor...@505] -
Address of remote peer: 1
2010-08-18 14:53:56,461 - INFO
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@475] - IN FLE sending
notification to server id = 1
2010-08-18 14:53:56,462 - INFO
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@476] - proposedLeader,
proposedZxid, logicalclock 1343597383684
***** Above, server 0 queued a notification to be sent to server 1. The
notfication is saying that it accepts 1 as the leader. But the notification
never got sent. process() was not called at all from WorkerSender. Its almost
as if the notification was never entered in sendqueue (in sendNotifications).
*****
2010-08-18 14:53:56,462 - INFO
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@475] - IN FLE sending
notification to server id = 2
2010-08-18 14:53:56,462 - INFO
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@476] - proposedLeader,
proposedZxid, logicalclock 1343597383684
2010-08-18 14:53:56,463 - DEBUG
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@716] - Adding vote: From =
1, Proposed leader = 1, Porposed zxid = 34359738368, Proposed epoch = 4
2010-08-18 14:53:56,463 - INFO
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@690] - Notification: 0,
34359738368, 4, 0, LOOKING, LOOKING, 0
2010-08-18 14:53:56,463 - DEBUG
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@496] - id: 0, proposed id:
1, zxid: 34359738368, proposed zxid: 34359738368
2010-08-18 14:53:56,463 - DEBUG
[QuorumPeer:/0:0:0:0:0:0:0:0:2181:fastleaderelect...@716] - Adding vote: From =
0, Proposed leader = 0, Porposed zxid = 34359738368, Proposed epoch = 4
> Leader election taking a long time to complete
> -----------------------------------------------
>
> Key: ZOOKEEPER-822
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-822
> Project: Zookeeper
> Issue Type: Bug
> Components: quorum
> Affects Versions: 3.3.0
> Reporter: Vishal K
> Priority: Blocker
> Attachments: 822.tar.gz, rhel.tar.gz, test_zookeeper_1.log,
> test_zookeeper_2.log, zk_leader_election.tar.gz
>
>
> Created a 3 node cluster.
> 1 Fail the ZK leader
> 2. Let leader election finish. Restart the leader and let it join the
> 3. Repeat
> After a few rounds leader election takes anywhere 25- 60 seconds to finish.
> Note- we didn't have any ZK clients and no new znodes were created.
> zoo.cfg is shown below:
> #Mon Jul 19 12:15:10 UTC 2010
> server.1=192.168.4.12\:2888\:3888
> server.0=192.168.4.11\:2888\:3888
> clientPort=2181
> dataDir=/var/zookeeper
> syncLimit=2
> server.2=192.168.4.13\:2888\:3888
> initLimit=5
> tickTime=2000
> I have attached logs from two nodes that took a long time to form the cluster
> after failing the leader. The leader was down anyways so logs from that node
> shouldn't matter.
> Look for "START HERE". Logs after that point should be of our interest.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.