This is an automated email from the ASF dual-hosted git repository.
phunt pushed a commit to branch branch-3.4
in repository https://gitbox.apache.org/repos/asf/zookeeper.git
The following commit(s) were added to refs/heads/branch-3.4 by this push:
new a2a62a9 Revert "ZOOKEEPER-3253: client should not send requests with cxid=-4, -2,
or -1"
a2a62a9 is described below
commit a2a62a9fa12c90b43fd4faa5f48508e6aa4b9557
Author: Patrick Hunt <phunt@apache.org>
AuthorDate: Wed Mar 6 08:26:04 2019 -0800
Revert "ZOOKEEPER-3253: client should not send requests with cxid=-4, -2, or -1"
I'm reverting this out of 3.4 - everything compiles fine but the new test is failing.
Should be an easy fix, we can recommit once a new PR is worked up for this branch.
This reverts commit 322792d512803f475920d07b047ad38255697b1f.
---
.../main/java/org/apache/zookeeper/ClientCnxn.java | 9 +-----
.../org/apache/zookeeper/TestableZooKeeper.java | 34 ---------------------
.../java/org/apache/zookeeper/test/ClientTest.java | 35 ----------------------
3 files changed, 1 insertion(+), 77 deletions(-)
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java b/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java
index 8d0faf2..dfd036e 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java
@@ -1383,8 +1383,7 @@ public class ClientCnxn {
}
}
- // @VisibleForTesting
- protected int xid = 1;
+ private int xid = 1;
// @VisibleForTesting
volatile States state = States.NOT_CONNECTED;
@@ -1394,12 +1393,6 @@ public class ClientCnxn {
* the server. Thus, getXid() must be public.
*/
synchronized public int getXid() {
- // Avoid negative cxid values. In particular, cxid values of -4, -2, and -1 are
special and
- // must not be used for requests -- see SendThread.readResponse.
- // Skip from MAX to 1.
- if (xid == Integer.MAX_VALUE) {
- xid = 1;
- }
return xid++;
}
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/TestableZooKeeper.java b/zookeeper-server/src/test/java/org/apache/zookeeper/TestableZooKeeper.java
index 7407c52..dd70056 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/TestableZooKeeper.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/TestableZooKeeper.java
@@ -25,7 +25,6 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import org.apache.jute.Record;
-import org.apache.zookeeper.client.HostProvider;
import org.apache.zookeeper.proto.ReplyHeader;
import org.apache.zookeeper.proto.RequestHeader;
@@ -35,39 +34,6 @@ public class TestableZooKeeper extends ZooKeeper {
Watcher watcher) throws IOException {
super(host, sessionTimeout, watcher);
}
-
- class TestableClientCnxn extends ClientCnxn {
- TestableClientCnxn(String chrootPath, HostProvider hostProvider, int sessionTimeout,
ZooKeeper zooKeeper,
- ClientWatchManager watcher, ClientCnxnSocket clientCnxnSocket, boolean canBeReadOnly)
- throws IOException {
- super(chrootPath, hostProvider, sessionTimeout, zooKeeper, watcher,
- clientCnxnSocket, 0, new byte[16], canBeReadOnly);
- }
-
- void setXid(int newXid) {
- xid = newXid;
- }
-
- int checkXid() {
- return xid;
- }
- }
-
- protected ClientCnxn createConnection(String chrootPath,
- HostProvider hostProvider, int sessionTimeout, ZooKeeper zooKeeper,
- ClientWatchManager watcher, ClientCnxnSocket clientCnxnSocket,
- boolean canBeReadOnly) throws IOException {
- return new TestableClientCnxn(chrootPath, hostProvider, sessionTimeout, this,
- watcher, clientCnxnSocket, canBeReadOnly);
- }
-
- public void setXid(int xid) {
- ((TestableClientCnxn)cnxn).setXid(xid);
- }
-
- public int checkXid() {
- return ((TestableClientCnxn)cnxn).checkXid();
- }
@Override
public List<String> getChildWatches() {
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientTest.java
index c973597..9dc4861 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientTest.java
@@ -26,8 +26,6 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-import org.apache.zookeeper.AsyncCallback;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.KeeperException.Code;
@@ -804,37 +802,4 @@ public class ClientTest extends ClientBase {
Assert.assertTrue("failed to disconnect",
clientDisconnected.await(5000, TimeUnit.MILLISECONDS));
}
-
- @Test
- public void testCXidRollover() throws Exception {
- TestableZooKeeper zk = null;
- try {
- zk = createClient();
- zk.setXid(Integer.MAX_VALUE - 10);
-
- zk.create("/testnode", "".getBytes(), Ids.OPEN_ACL_UNSAFE,
- CreateMode.PERSISTENT);
- for (int i = 0; i < 20; ++i) {
- final CountDownLatch latch = new CountDownLatch(1);
- final AtomicInteger rc = new AtomicInteger(0);
- zk.setData("/testnode", "".getBytes(), -1,
- new AsyncCallback.StatCallback() {
- @Override
- public void processResult(int retcode, String path, Object ctx, Stat
stat) {
- rc.set(retcode);
- latch.countDown();
- }
- }, null);
- Assert.assertTrue("setData should complete within 5s",
- latch.await(zk.getSessionTimeout(), TimeUnit.MILLISECONDS));
- Assert.assertEquals("setData should have succeeded", Code.OK.intValue(),
rc.get());
- }
- zk.delete("/testnode", -1);
- Assert.assertTrue("xid should be positive", zk.checkXid() > 0);
- } finally {
- if (zk != null) {
- zk.close();
- }
- }
- }
}
|