This is an automated email from the ASF dual-hosted git repository.

maoling pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zookeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new cb89916  ZOOKEEPER-4349: delete the useless oraclePath directory 
generated by test suit
cb89916 is described below

commit cb899167421d7a24f1e6c3f06aa4a621391df15f
Author: maoling <[email protected]>
AuthorDate: Sun Oct 10 23:09:56 2021 +0800

    ZOOKEEPER-4349: delete the useless oraclePath directory generated by test 
suit
    
    - when running the `QuorumOracleMajTest` and sub tests of `QuorumBase`(e.g: 
`MultiOpSessionUpgradeTest`), we generate lots of useless files which are not 
exempt from `Git`. we should delete them after the finish of one UT.
    ```
    ✗ tree zookeeper-server/tmp/
    zookeeper-server/tmp/
    └── oraclePath
        ├── 0
        │   └── mastership
        │       └── value
        └── 1
            └── mastership
                └── value
    ```
    - fix a typo in the `zookeeperOracleQuorums.md `
    
    Author: maoling <[email protected]>
    
    Reviewers: Ching-Chan Lee <[email protected]>
    
    Closes #1742 from maoling/ZOOKEEPER-4349
---
 .../resources/markdown/zookeeperOracleQuorums.md   |  2 +-
 .../java/org/apache/zookeeper/test/QuorumBase.java | 97 ++++++++++++----------
 .../zookeeper/test/QuorumBaseOracle_2Nodes.java    | 32 ++++---
 .../apache/zookeeper/test/QuorumOracleMajTest.java |  1 +
 4 files changed, 77 insertions(+), 55 deletions(-)

diff --git 
a/zookeeper-docs/src/main/resources/markdown/zookeeperOracleQuorums.md 
b/zookeeper-docs/src/main/resources/markdown/zookeeperOracleQuorums.md
index adc5477..0f72d6e 100644
--- a/zookeeper-docs/src/main/resources/markdown/zookeeperOracleQuorums.md
+++ b/zookeeper-docs/src/main/resources/markdown/zookeeperOracleQuorums.md
@@ -23,7 +23,7 @@ in a 2-instance configuration when the other instance is 
identified as faulty by
 Every instance shall access to a file which contains either 0 or 1 to indicate 
whether this instance is authorized by the Oracle.
 However, this design can be changed since the fail detector algorithms vary 
from each other. Therefore, ones can override the method of _askOracle()_ in 
_QuorumOracleMaj_ to adapt the preferred way of deciphering the message from 
the Oracle.
 
-## The deployment cotexts
+## The deployment contexts
 The Oracle is designed to increase the availability of a cluster of 2 
ZooKeeper instances; thus, the size of the voting member is **2**.
 In other words, the Oracle solves the consensus problem of a possibility of 
faulty instance in a two-instance ensemble.
 
diff --git 
a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBase.java 
b/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBase.java
index c2396a6..8f5f17d 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBase.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBase.java
@@ -49,11 +49,12 @@ public class QuorumBase extends ClientBase {
 
     private static final String LOCALADDR = "127.0.0.1";
 
-    private static final String oraclePath_0 = 
"./tmp/oraclePath/0/mastership/";
-    private static final String oraclePath_1 = 
"./tmp/oraclePath/1/mastership/";
-    private static final String oraclePath_2 = 
"./tmp/oraclePath/0/mastership/";
-    private static final String oraclePath_3 = 
"./tmp/oraclePath/1/mastership/";
-    private static final String oraclePath_4 = 
"./tmp/oraclePath/0/mastership/";
+    private File oracleDir;
+    private static final String oraclePath_0 = "/oraclePath/0/mastership/";
+    private static final String oraclePath_1 = "/oraclePath/1/mastership/";
+    private static final String oraclePath_2 = "/oraclePath/0/mastership/";
+    private static final String oraclePath_3 = "/oraclePath/1/mastership/";
+    private static final String oraclePath_4 = "/oraclePath/0/mastership/";
     private static final String mastership = "value";
 
     File s1dir, s2dir, s3dir, s4dir, s5dir;
@@ -137,42 +138,42 @@ public class QuorumBase extends ClientBase {
             LOG.info("Initial fdcount is: {}", 
osMbean.getOpenFileDescriptorCount());
         }
 
-        if (withOracle) {
-            File directory = new File(oraclePath_0);
-            directory.mkdirs();
-            FileWriter fw = new FileWriter(oraclePath_0 + mastership);
-            fw.write("1");
-            fw.close();
-
-            directory = new File(oraclePath_1);
-            directory.mkdirs();
-            fw = new FileWriter(oraclePath_1 + mastership);
-            fw.write("0");
-            fw.close();
-
-            directory = new File(oraclePath_2);
-            directory.mkdirs();
-            fw = new FileWriter(oraclePath_2 + mastership);
-            fw.write("0");
-            fw.close();
-
-            directory = new File(oraclePath_3);
-            directory.mkdirs();
-            fw = new FileWriter(oraclePath_3 + mastership);
-            fw.write("1");
-            fw.close();
-
-            directory = new File(oraclePath_4);
-            directory.mkdirs();
-            fw = new FileWriter(oraclePath_4 + mastership);
-            fw.write("0");
-            fw.close();
-        }
-
-
         LOG.info("Setup finished");
     }
 
+    private void createOraclePath() throws IOException {
+        oracleDir = ClientBase.createTmpDir();
+        File directory = new File(oracleDir, oraclePath_0);
+        directory.mkdirs();
+        FileWriter fw = new FileWriter(oracleDir.getAbsolutePath() + 
oraclePath_0 + mastership);
+        fw.write("1");
+        fw.close();
+
+        directory = new File(oracleDir, oraclePath_1);
+        directory.mkdirs();
+        fw = new FileWriter(oracleDir.getAbsolutePath() + oraclePath_1 + 
mastership);
+        fw.write("0");
+        fw.close();
+
+        directory = new File(oracleDir, oraclePath_2);
+        directory.mkdirs();
+        fw = new FileWriter(oracleDir.getAbsolutePath() + oraclePath_2 + 
mastership);
+        fw.write("0");
+        fw.close();
+
+        directory = new File(oracleDir, oraclePath_3);
+        directory.mkdirs();
+        fw = new FileWriter(oracleDir.getAbsolutePath() + oraclePath_3 + 
mastership);
+        fw.write("1");
+        fw.close();
+
+        directory = new File(oracleDir, oraclePath_4);
+        directory.mkdirs();
+        fw = new FileWriter(oracleDir.getAbsolutePath()  + oraclePath_4 + 
mastership);
+        fw.write("0");
+        fw.close();
+    }
+
     void startServers() throws Exception {
         startServers(false, true);
     }
@@ -211,20 +212,27 @@ public class QuorumBase extends ClientBase {
             s5 = new QuorumPeer(peers, s5dir, s5dir, portClient5, 3, 5, 
tickTime, initLimit, syncLimit, connectToLearnerMasterLimit);
             assertEquals(portClient5, s5.getClientPort());
         } else {
+            createOraclePath();
+
             LOG.info("creating QuorumPeer 1 port {}", portClient1);
-            s1 = new QuorumPeer(peers, s1dir, s1dir, portClient1, 3, 1, 
tickTime, initLimit, syncLimit, connectToLearnerMasterLimit, oraclePath_0 + 
mastership);
+            s1 = new QuorumPeer(peers, s1dir, s1dir, portClient1, 3, 1, 
tickTime, initLimit, syncLimit, connectToLearnerMasterLimit, oracleDir
+                    .getAbsolutePath()  + oraclePath_0 + mastership);
             assertEquals(portClient1, s1.getClientPort());
             LOG.info("creating QuorumPeer 2 port {}", portClient2);
-            s2 = new QuorumPeer(peers, s2dir, s2dir, portClient2, 3, 2, 
tickTime, initLimit, syncLimit, connectToLearnerMasterLimit, oraclePath_1 + 
mastership);
+            s2 = new QuorumPeer(peers, s2dir, s2dir, portClient2, 3, 2, 
tickTime, initLimit, syncLimit, connectToLearnerMasterLimit, oracleDir
+                    .getAbsolutePath()  + oraclePath_1 + mastership);
             assertEquals(portClient2, s2.getClientPort());
             LOG.info("creating QuorumPeer 3 port {}", portClient3);
-            s3 = new QuorumPeer(peers, s3dir, s3dir, portClient3, 3, 3, 
tickTime, initLimit, syncLimit, connectToLearnerMasterLimit, oraclePath_2 + 
mastership);
+            s3 = new QuorumPeer(peers, s3dir, s3dir, portClient3, 3, 3, 
tickTime, initLimit, syncLimit, connectToLearnerMasterLimit, oracleDir
+                    .getAbsolutePath()  + oraclePath_2 + mastership);
             assertEquals(portClient3, s3.getClientPort());
             LOG.info("creating QuorumPeer 4 port {}", portClient4);
-            s4 = new QuorumPeer(peers, s4dir, s4dir, portClient4, 3, 4, 
tickTime, initLimit, syncLimit, connectToLearnerMasterLimit, oraclePath_3 + 
mastership);
+            s4 = new QuorumPeer(peers, s4dir, s4dir, portClient4, 3, 4, 
tickTime, initLimit, syncLimit, connectToLearnerMasterLimit, oracleDir
+                    .getAbsolutePath()  + oraclePath_3 + mastership);
             assertEquals(portClient4, s4.getClientPort());
             LOG.info("creating QuorumPeer 5 port {}", portClient5);
-            s5 = new QuorumPeer(peers, s5dir, s5dir, portClient5, 3, 5, 
tickTime, initLimit, syncLimit, connectToLearnerMasterLimit, oraclePath_4 + 
mastership);
+            s5 = new QuorumPeer(peers, s5dir, s5dir, portClient5, 3, 5, 
tickTime, initLimit, syncLimit, connectToLearnerMasterLimit, oracleDir
+                    .getAbsolutePath()  + oraclePath_4 + mastership);
             assertEquals(portClient5, s5.getClientPort());
         }
 
@@ -451,6 +459,9 @@ public class QuorumBase extends ClientBase {
     @Override
     public void tearDown() throws Exception {
         LOG.info("TearDown started");
+        if (oracleDir != null) {
+            ClientBase.recursiveDelete(oracleDir);
+        }
 
         OSMXBean osMbean = new OSMXBean();
         if (osMbean.getUnix()) {
diff --git 
a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBaseOracle_2Nodes.java
 
b/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBaseOracle_2Nodes.java
index 482027d..d32af99 100644
--- 
a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBaseOracle_2Nodes.java
+++ 
b/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumBaseOracle_2Nodes.java
@@ -47,8 +47,9 @@ public class QuorumBaseOracle_2Nodes extends ClientBase{
 
     private static final String LOCALADDR = "127.0.0.1";
 
-    private static final String oraclePath_0 = 
"./tmp/oraclePath/0/mastership/";
-    private static final String oraclePath_1 = 
"./tmp/oraclePath/1/mastership/";
+    private File oracleDir;
+    private static String oraclePath_0 = "/oraclePath/0/mastership/";
+    private static String oraclePath_1 = "/oraclePath/1/mastership/";
 
     private static final String mastership = "value";
 
@@ -96,6 +97,8 @@ public class QuorumBaseOracle_2Nodes extends ClientBase{
         s1dir = ClientBase.createTmpDir();
         s2dir = ClientBase.createTmpDir();
 
+        createOraclePath();
+
         startServers();
 
         OSMXBean osMbean = new OSMXBean();
@@ -103,20 +106,22 @@ public class QuorumBaseOracle_2Nodes extends ClientBase{
             LOG.info("Initial fdcount is: {}", 
osMbean.getOpenFileDescriptorCount());
         }
 
-        File directory = new File(oraclePath_0);
+        LOG.info("Setup finished");
+    }
+
+    private void createOraclePath() throws IOException {
+        oracleDir = ClientBase.createTmpDir();
+        File directory = new File(oracleDir, oraclePath_0);
         directory.mkdirs();
-        FileWriter fw = new FileWriter(oraclePath_0 + mastership);
+        FileWriter fw = new FileWriter(oracleDir.getAbsolutePath() + 
oraclePath_0 + mastership);
         fw.write("0");
         fw.close();
 
-        directory = new File(oraclePath_1);
+        directory = new File(oracleDir, oraclePath_1);
         directory.mkdirs();
-        fw = new FileWriter(oraclePath_1 + mastership);
+        fw = new FileWriter(oracleDir.getAbsolutePath() + oraclePath_1 + 
mastership);
         fw.write("1");
         fw.close();
-
-
-        LOG.info("Setup finished");
     }
 
     void startServers() throws Exception {
@@ -129,10 +134,12 @@ public class QuorumBaseOracle_2Nodes extends ClientBase{
         peers.put(Long.valueOf(2), new QuorumPeer.QuorumServer(2, new 
InetSocketAddress(LOCALADDR, port2), new InetSocketAddress(LOCALADDR, portLE2), 
new InetSocketAddress(LOCALADDR, portClient2), 
QuorumPeer.LearnerType.PARTICIPANT));
 
         LOG.info("creating QuorumPeer 1 port {}", portClient1);
-        s1 = new QuorumPeer(peers, s1dir, s1dir, portClient1, 3, 1, tickTime, 
initLimit, syncLimit, connectToLearnerMasterLimit, oraclePath_0 + mastership);
+        s1 = new QuorumPeer(peers, s1dir, s1dir, portClient1, 3, 1, tickTime, 
initLimit, syncLimit, connectToLearnerMasterLimit, oracleDir
+                .getAbsolutePath() + oraclePath_0 + mastership);
         assertEquals(portClient1, s1.getClientPort());
         LOG.info("creating QuorumPeer 2 port {}", portClient2);
-        s2 = new QuorumPeer(peers, s2dir, s2dir, portClient2, 3, 2, tickTime, 
initLimit, syncLimit, connectToLearnerMasterLimit, oraclePath_1 + mastership);
+        s2 = new QuorumPeer(peers, s2dir, s2dir, portClient2, 3, 2, tickTime, 
initLimit, syncLimit, connectToLearnerMasterLimit, oracleDir
+                .getAbsolutePath() + oraclePath_1 + mastership);
         assertEquals(portClient2, s2.getClientPort());
 
 
@@ -286,6 +293,9 @@ public class QuorumBaseOracle_2Nodes extends ClientBase{
     @Override
     public void tearDown() throws Exception {
         LOG.info("TearDown started");
+        if (oracleDir != null) {
+            ClientBase.recursiveDelete(oracleDir);
+        }
 
         OSMXBean osMbean = new OSMXBean();
         if (osMbean.getUnix()) {
diff --git 
a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumOracleMajTest.java
 
b/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumOracleMajTest.java
index 1b1fb31..2a079e2 100644
--- 
a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumOracleMajTest.java
+++ 
b/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumOracleMajTest.java
@@ -56,6 +56,7 @@ public class QuorumOracleMajTest extends 
QuorumBaseOracle_2Nodes {
             assertTrue(electionTimeTaken >= 0, "Wrong electionTimeTaken 
value!");
         }
 
+        tearDown();
         //setup servers 1-2 to be followers
         // id=1, oracle is false; id=2, oracle is true
         setUp();

Reply via email to