You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ph...@apache.org on 2012/07/29 07:02:57 UTC
svn commit: r1366781 - in /zookeeper/trunk: CHANGES.txt
src/java/main/org/apache/zookeeper/server/quorum/Leader.java
src/java/main/org/apache/zookeeper/server/quorum/LearnerHandler.java
Author: phunt
Date: Sun Jul 29 05:02:56 2012
New Revision: 1366781
URL: http://svn.apache.org/viewvc?rev=1366781&view=rev
Log:
ZOOKEEPER-1521. LearnerHandler initLimit/syncLimit problems specifying follower socket timeout limits (phunt)
Modified:
zookeeper/trunk/CHANGES.txt
zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Leader.java
zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LearnerHandler.java
Modified: zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/trunk/CHANGES.txt?rev=1366781&r1=1366780&r2=1366781&view=diff
==============================================================================
--- zookeeper/trunk/CHANGES.txt (original)
+++ zookeeper/trunk/CHANGES.txt Sun Jul 29 05:02:56 2012
@@ -211,6 +211,9 @@ BUGFIXES:
ZOOKEEPER-1489. Data loss after truncate on transaction log (phunt)
+ ZOOKEEPER-1521. LearnerHandler initLimit/syncLimit problems
+ specifying follower socket timeout limits (phunt)
+
IMPROVEMENTS:
ZOOKEEPER-1170. Fix compiler (eclipse) warnings: unused imports,
Modified: zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Leader.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Leader.java?rev=1366781&r1=1366780&r2=1366781&view=diff
==============================================================================
--- zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Leader.java (original)
+++ zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Leader.java Sun Jul 29 05:02:56 2012
@@ -298,7 +298,9 @@ public class Leader {
while (!stop) {
try{
Socket s = ss.accept();
- s.setSoTimeout(self.tickTime * self.syncLimit);
+ // start with the initLimit, once the ack is processed
+ // in LearnerHandler switch to the syncLimit
+ s.setSoTimeout(self.tickTime * self.initLimit);
s.setTcpNoDelay(nodelay);
LearnerHandler fh = new LearnerHandler(s, Leader.this);
fh.start();
Modified: zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LearnerHandler.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LearnerHandler.java?rev=1366781&r1=1366780&r2=1366781&view=diff
==============================================================================
--- zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LearnerHandler.java (original)
+++ zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LearnerHandler.java Sun Jul 29 05:02:56 2012
@@ -233,7 +233,6 @@ public class LearnerHandler extends Thre
@Override
public void run() {
try {
- sock.setSoTimeout(leader.self.getTickTime()*leader.self.getInitLimit());
ia = BinaryInputArchive.getArchive(new BufferedInputStream(sock
.getInputStream()));
bufferedOutput = new BufferedOutputStream(sock.getOutputStream());
@@ -458,6 +457,9 @@ public class LearnerHandler extends Thre
return;
}
leader.processAck(this.sid, qp.getZxid(), sock.getLocalSocketAddress());
+
+ // now that the ack has been processed expect the syncLimit
+ sock.setSoTimeout(leader.self.tickTime * leader.self.syncLimit);
/*
* Wait until leader starts up
@@ -473,7 +475,6 @@ public class LearnerHandler extends Thre
//
queuedPackets.add(new QuorumPacket(Leader.UPTODATE, -1, null, null));
-
while (true) {
qp = new QuorumPacket();
ia.readRecord(qp, "packet");