curator-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From randg...@apache.org
Subject [1/8] curator git commit: Switch to new injectSessionExpiration()
Date Mon, 07 Sep 2015 06:51:36 GMT
Repository: curator
Updated Branches:
  refs/heads/CURATOR-248 49b267d18 -> 7aa371e95


Switch to new injectSessionExpiration()


Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/d1b4cbf0
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/d1b4cbf0
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/d1b4cbf0

Branch: refs/heads/CURATOR-248
Commit: d1b4cbf070046ace5c047cc46d99c0ae71f749a5
Parents: 0f5668b
Author: randgalt <randgalt@apache.org>
Authored: Fri Aug 28 13:39:22 2015 -0500
Committer: randgalt <randgalt@apache.org>
Committed: Fri Aug 28 13:39:22 2015 -0500

----------------------------------------------------------------------
 .../curator/TestSessionFailRetryLoop.java       |  9 +-
 .../framework/recipes/cache/TestTreeCache.java  |  1 -
 .../org/apache/curator/test/KillSession.java    | 87 ++++----------------
 3 files changed, 21 insertions(+), 76 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/d1b4cbf0/curator-client/src/test/java/org/apache/curator/TestSessionFailRetryLoop.java
----------------------------------------------------------------------
diff --git a/curator-client/src/test/java/org/apache/curator/TestSessionFailRetryLoop.java
b/curator-client/src/test/java/org/apache/curator/TestSessionFailRetryLoop.java
index c17b5bf..937726e 100644
--- a/curator-client/src/test/java/org/apache/curator/TestSessionFailRetryLoop.java
+++ b/curator-client/src/test/java/org/apache/curator/TestSessionFailRetryLoop.java
@@ -18,6 +18,7 @@
  */
 package org.apache.curator;
 
+import org.apache.curator.retry.ExponentialBackoffRetry;
 import org.apache.curator.test.BaseClassForTests;
 import org.apache.curator.utils.CloseableUtils;
 import org.apache.curator.retry.RetryOneTime;
@@ -34,7 +35,7 @@ public class TestSessionFailRetryLoop extends BaseClassForTests
     public void     testRetry() throws Exception
     {
         Timing                          timing = new Timing();
-        final CuratorZookeeperClient    client = new CuratorZookeeperClient(server.getConnectString(),
timing.session(), timing.connection(), null, new RetryOneTime(1));
+        final CuratorZookeeperClient    client = new CuratorZookeeperClient(server.getConnectString(),
timing.session(), timing.connection(), null, new ExponentialBackoffRetry(100, 3));
         SessionFailRetryLoop            retryLoop = client.newSessionFailRetryLoop(SessionFailRetryLoop.Mode.RETRY);
         retryLoop.start();
         try
@@ -103,7 +104,7 @@ public class TestSessionFailRetryLoop extends BaseClassForTests
     public void     testRetryStatic() throws Exception
     {
         Timing                          timing = new Timing();
-        final CuratorZookeeperClient    client = new CuratorZookeeperClient(server.getConnectString(),
timing.session(), timing.connection(), null, new RetryOneTime(1));
+        final CuratorZookeeperClient    client = new CuratorZookeeperClient(server.getConnectString(),
timing.session(), timing.connection(), null, new ExponentialBackoffRetry(100, 3));
         SessionFailRetryLoop            retryLoop = client.newSessionFailRetryLoop(SessionFailRetryLoop.Mode.RETRY);
         retryLoop.start();
         try
@@ -175,7 +176,7 @@ public class TestSessionFailRetryLoop extends BaseClassForTests
     public void     testBasic() throws Exception
     {
         Timing                          timing = new Timing();
-        final CuratorZookeeperClient    client = new CuratorZookeeperClient(server.getConnectString(),
timing.session(), timing.connection(), null, new RetryOneTime(1));
+        final CuratorZookeeperClient    client = new CuratorZookeeperClient(server.getConnectString(),
timing.session(), timing.connection(), null, new ExponentialBackoffRetry(100, 3));
         SessionFailRetryLoop            retryLoop = client.newSessionFailRetryLoop(SessionFailRetryLoop.Mode.FAIL);
         retryLoop.start();
         try
@@ -230,7 +231,7 @@ public class TestSessionFailRetryLoop extends BaseClassForTests
     public void     testBasicStatic() throws Exception
     {
         Timing                          timing = new Timing();
-        final CuratorZookeeperClient    client = new CuratorZookeeperClient(server.getConnectString(),
timing.session(), timing.connection(), null, new RetryOneTime(1));
+        final CuratorZookeeperClient    client = new CuratorZookeeperClient(server.getConnectString(),
timing.session(), timing.connection(), null, new ExponentialBackoffRetry(100, 3));
         SessionFailRetryLoop            retryLoop = client.newSessionFailRetryLoop(SessionFailRetryLoop.Mode.FAIL);
         retryLoop.start();
         try

http://git-wip-us.apache.org/repos/asf/curator/blob/d1b4cbf0/curator-recipes/src/test/java/org/apache/curator/framework/recipes/cache/TestTreeCache.java
----------------------------------------------------------------------
diff --git a/curator-recipes/src/test/java/org/apache/curator/framework/recipes/cache/TestTreeCache.java
b/curator-recipes/src/test/java/org/apache/curator/framework/recipes/cache/TestTreeCache.java
index 0bccb54..151ea7e 100644
--- a/curator-recipes/src/test/java/org/apache/curator/framework/recipes/cache/TestTreeCache.java
+++ b/curator-recipes/src/test/java/org/apache/curator/framework/recipes/cache/TestTreeCache.java
@@ -377,7 +377,6 @@ public class TestTreeCache extends BaseTestTreeCache
         assertEvent(TreeCacheEvent.Type.NODE_ADDED, "/test/me");
 
         KillSession.kill(client.getZookeeperClient().getZooKeeper(), server.getConnectString());
-        assertEvent(TreeCacheEvent.Type.CONNECTION_SUSPENDED);
         assertEvent(TreeCacheEvent.Type.CONNECTION_LOST);
         assertEvent(TreeCacheEvent.Type.CONNECTION_RECONNECTED);
         assertEvent(TreeCacheEvent.Type.NODE_REMOVED, "/test/me");

http://git-wip-us.apache.org/repos/asf/curator/blob/d1b4cbf0/curator-test/src/main/java/org/apache/curator/test/KillSession.java
----------------------------------------------------------------------
diff --git a/curator-test/src/main/java/org/apache/curator/test/KillSession.java b/curator-test/src/main/java/org/apache/curator/test/KillSession.java
index 63b7f2a..ce2b7e6 100644
--- a/curator-test/src/main/java/org/apache/curator/test/KillSession.java
+++ b/curator-test/src/main/java/org/apache/curator/test/KillSession.java
@@ -18,24 +18,12 @@
  */
 package org.apache.curator.test;
 
-import org.apache.zookeeper.WatchedEvent;
-import org.apache.zookeeper.Watcher;
 import org.apache.zookeeper.ZooKeeper;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
 
 /**
  * <p>
- *     Utility to simulate a ZK session dying. See: <a href="http://wiki.apache.org/hadoop/ZooKeeper/FAQ#A4">ZooKeeper
FAQ</a>
+ *     Utility to simulate a ZK session dying.
  * </p>
- *
- * <blockquote>
- *     In the case of testing we want to cause a problem, so to explicitly expire a session
an
- *     application connects to ZooKeeper, saves the session id and password, creates another
- *     ZooKeeper handle with that id and password, and then closes the new handle. Since
both
- *     handles reference the same session, the close on second handle will invalidate the
session
- *     causing a SESSION_EXPIRED on the first handle.
- * </blockquote>
  */
 public class KillSession
 {
@@ -43,12 +31,24 @@ public class KillSession
      * Kill the given ZK session
      *
      * @param client the client to kill
+     * @since 3.0.0
+     */
+    public static void     kill(ZooKeeper client)
+    {
+        client.getTestable().injectSessionExpiration();
+    }
+
+    /**
+     * Kill the given ZK session
+     *
+     * @param client the client to kill
      * @param connectString server connection string
      * @throws Exception errors
+     * @deprecated use {@link #kill(ZooKeeper)} instead
      */
     public static void     kill(ZooKeeper client, String connectString) throws Exception
     {
-        kill(client, connectString, new Timing().forWaiting().milliseconds());
+        kill(client);
     }
 
     /**
@@ -58,65 +58,10 @@ public class KillSession
      * @param connectString server connection string
      * @param maxMs max time ms to wait for kill
      * @throws Exception errors
+     * @deprecated use {@link #kill(ZooKeeper)} instead
      */
     public static void     kill(ZooKeeper client, String connectString, int maxMs) throws
Exception
     {
-        long                    startTicks = System.currentTimeMillis();
-
-        final CountDownLatch    sessionLostLatch = new CountDownLatch(1);
-        Watcher                 sessionLostWatch = new Watcher()
-        {
-            @Override
-            public void process(WatchedEvent event)
-            {
-                sessionLostLatch.countDown();
-            }
-        };
-        client.exists("/___CURATOR_KILL_SESSION___" + System.nanoTime(), sessionLostWatch);
-
-        final CountDownLatch    connectionLatch = new CountDownLatch(1);
-        Watcher                 connectionWatcher = new Watcher()
-        {
-            @Override
-            public void process(WatchedEvent event)
-            {
-                if ( event.getState() == Event.KeeperState.SyncConnected )
-                {
-                    connectionLatch.countDown();
-                }
-            }
-        };
-        ZooKeeper zk = new ZooKeeper(connectString, maxMs, connectionWatcher, client.getSessionId(),
client.getSessionPasswd());
-        try
-        {
-            if ( !connectionLatch.await(maxMs, TimeUnit.MILLISECONDS) )
-            {
-                throw new Exception("KillSession could not establish duplicate session");
-            }
-            try
-            {
-                zk.close();
-            }
-            finally
-            {
-                zk = null;
-            }
-
-            while ( client.getState().isConnected() && !sessionLostLatch.await(100,
TimeUnit.MILLISECONDS) )
-            {
-                long        elapsed = System.currentTimeMillis() - startTicks;
-                if ( elapsed > maxMs )
-                {
-                    throw new Exception("KillSession timed out waiting for session to expire");
-                }
-            }
-        }
-        finally
-        {
-            if ( zk != null )
-            {
-                zk.close();
-            }
-        }
+        kill(client);
     }
 }


Mime
View raw message