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:52:31 UTC

svn commit: r1535497 - in /zookeeper/branches/branch-3.4: 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:52:31 2013
New Revision: 1535497

URL: http://svn.apache.org/r1535497
Log:
ZOOKEEPER-1798. Fix race condition in testNormalObserverRun (thawan, fpj via thawan)

Modified:
    zookeeper/branches/branch-3.4/CHANGES.txt
    zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java

Modified: zookeeper/branches/branch-3.4/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/CHANGES.txt?rev=1535497&r1=1535496&r2=1535497&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/CHANGES.txt (original)
+++ zookeeper/branches/branch-3.4/CHANGES.txt Thu Oct 24 18:52:31 2013
@@ -152,6 +152,9 @@ BUGFIXES:
   ZOOKEEPER-1744. clientPortAddress breaks "zkServer.sh status"
   (Nick Ohanian via phunt)
 
+  ZOOKEEPER-1798. Fix race condition in testNormalObserverRun
+  (thawan, fpj via thawan)
+
 IMPROVEMENTS:
 
   ZOOKEEPER-1564. Allow JUnit test build with IBM Java

Modified: zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java?rev=1535497&r1=1535496&r2=1535497&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java (original)
+++ zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java Thu Oct 24 18:52:31 2013
@@ -212,8 +212,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/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java?rev=1535497&r1=1535496&r2=1535497&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java Thu Oct 24 18:52:31 2013
@@ -1113,6 +1113,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)));