You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by th...@apache.org on 2013/10/24 20:41:13 UTC
svn commit: r1535491 - in /zookeeper/trunk: CHANGES.txt
src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java
src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java
Author: thawan
Date: Thu Oct 24 18:41:12 2013
New Revision: 1535491
URL: http://svn.apache.org/r1535491
Log:
ZOOKEEPER-1798. Fix race condition in testNormalObserverRun (thawan, fpj via thawan)
Modified:
zookeeper/trunk/CHANGES.txt
zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java
zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java
Modified: zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/trunk/CHANGES.txt?rev=1535491&r1=1535490&r2=1535491&view=diff
==============================================================================
--- zookeeper/trunk/CHANGES.txt (original)
+++ zookeeper/trunk/CHANGES.txt Thu Oct 24 18:41:12 2013
@@ -468,6 +468,9 @@ BUGFIXES:
ZOOKEEPER-1499. clientPort config changes not backwards-compatible
(Alexander Shraer via phunt, breed)
+ ZOOKEEPER-1798. Fix race condition in testNormalObserverRun
+ (thawan, fpj via thawan)
+
IMPROVEMENTS:
ZOOKEEPER-1170. Fix compiler (eclipse) warnings: unused imports,
Modified: zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java?rev=1535491&r1=1535490&r2=1535491&view=diff
==============================================================================
--- zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java (original)
+++ zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java Thu Oct 24 18:41:12 2013
@@ -193,8 +193,15 @@ public class SyncRequestProcessor extend
if(running){
this.join();
}
+ if (!toFlush.isEmpty()) {
+ flush(toFlush);
+ }
} catch(InterruptedException e) {
LOG.warn("Interrupted while wating for " + this + " to finish");
+ } catch (IOException e) {
+ LOG.warn("Got IO exception during shutdown");
+ } catch (RequestProcessorException e) {
+ LOG.warn("Got request processor exception during shutdown");
}
if (nextProcessor != null) {
nextProcessor.shutdown();
Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java?rev=1535491&r1=1535490&r2=1535491&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java Thu Oct 24 18:41:12 2013
@@ -1095,6 +1095,10 @@ public class Zab1_0Test {
Assert.assertEquals("data2", new String(o.zk
.getZKDatabase().getData("/foo2", stat, null)));
+ // Shutdown sequence guarantee that all pending requests
+ // in sync request processor get flush to disk
+ o.zk.shutdown();
+
zkDb2 = new ZKDatabase(new FileTxnSnapLog(logDir, snapDir));
lastZxid = zkDb2.loadDataBase();
Assert.assertEquals("data2", new String(zkDb2.getData("/foo1", stat, null)));