浏览代码

ZOOKEEPER-1799. SaslAuthFailDesignatedClientTest.testAuth fails frequently on SUSE (Jeffrey Zhong via phunt)

git-svn-id: https://svn.apache.org/repos/asf/zookeeper/trunk@1534842 13f79535-47bb-0310-9956-ffa450edef68
Patrick D. Hunt 11 年之前
父节点
当前提交
10987f3f57
共有 2 个文件被更改,包括 13 次插入1 次删除
  1. 3 0
      CHANGES.txt
  2. 10 1
      src/java/test/org/apache/zookeeper/test/SaslAuthFailDesignatedClientTest.java

+ 3 - 0
CHANGES.txt

@@ -456,6 +456,9 @@ BUGFIXES:
   ZOOKEEPER-1667. Watch event isn't handled correctly when 
   a client reestablish to a server (jacky007, fpj via fpj)
 
+  ZOOKEEPER-1799. SaslAuthFailDesignatedClientTest.testAuth fails
+  frequently on SUSE (Jeffrey Zhong via phunt)
+
 IMPROVEMENTS:
 
   ZOOKEEPER-1170. Fix compiler (eclipse) warnings: unused imports,

+ 10 - 1
src/java/test/org/apache/zookeeper/test/SaslAuthFailDesignatedClientTest.java

@@ -21,10 +21,12 @@ package org.apache.zookeeper.test;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.zookeeper.CreateMode;
 import org.apache.zookeeper.KeeperException;
+import org.apache.zookeeper.TestableZooKeeper;
 import org.apache.zookeeper.WatchedEvent;
 import org.apache.zookeeper.ZooKeeper;
 import org.apache.zookeeper.Watcher.Event.KeeperState;
@@ -84,7 +86,14 @@ public class SaslAuthFailDesignatedClientTest extends ClientBase {
 
     @Test
     public void testAuth() throws Exception {
-        ZooKeeper zk = createClient();
+        // Cannot use createClient here because server may close session before 
+        // JMXEnv.ensureAll is called which will fail the test case
+        CountdownWatcher watcher = new CountdownWatcher();
+        TestableZooKeeper zk = new TestableZooKeeper(hostPort, CONNECTION_TIMEOUT, watcher);
+        if (!watcher.clientConnected.await(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS))
+        {
+            Assert.fail("Unable to connect to server");
+        }
         try {
             zk.create("/path1", null, Ids.CREATOR_ALL_ACL, CreateMode.PERSISTENT);
             Assert.fail("Should have gotten exception.");