[
https://issues.apache.org/jira/browse/ZOOKEEPER-3253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16786771#comment-16786771
]
Josh Elser commented on ZOOKEEPER-3253:
---------------------------------------
FWIW, I had pulled this change into a fork and ran into the same issue. I
assumed it was an issue with my fork :)
{code:java}
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java
b/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java
index 03c8b0d7e..0577d5f15 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java
@@ -448,12 +448,21 @@ public ZooKeeper(String connectString, int
sessionTimeout, Watcher watcher,
connectString);
HostProvider hostProvider = new StaticHostProvider(
connectStringParser.getServerAddresses());
- cnxn = new ClientCnxn(connectStringParser.getChrootPath(),
+ cnxn = createConnection(connectStringParser.getChrootPath(),
hostProvider, sessionTimeout, this, watchManager,
getClientCnxnSocket(), canBeReadOnly);
cnxn.start();
}
+ // @VisibleForTesting
+ protected ClientCnxn createConnection(String chrootPath,
+ HostProvider hostProvider, int sessionTimeout, ZooKeeper zooKeeper,
+ ClientWatchManager watcher, ClientCnxnSocket clientCnxnSocket,
+ boolean canBeReadOnly) throws IOException {
+ return new ClientCnxn(chrootPath, hostProvider, sessionTimeout, this,
+ watchManager, clientCnxnSocket, canBeReadOnly);
+ }
+
/**
* To create a ZooKeeper client object, the application needs to pass a
* connection string containing a comma separated list of host:port
pairs,{code}
Just missing the "hook" to inject a custom {{ClientCnxn}} object that the test
code relies on.
(Can send this as a PR, just didn't want to steal [~sjust2]'s thunder ;))
> client should not send requests with cxid=-4, -2, or -1
> -------------------------------------------------------
>
> Key: ZOOKEEPER-3253
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3253
> Project: ZooKeeper
> Issue Type: Bug
> Components: java client
> Affects Versions: 3.4.9, 3.5.4, 3.6.0
> Reporter: Samuel Just
> Assignee: Samuel Just
> Priority: Minor
> Labels: pull-request-available
> Fix For: 3.6.0, 3.5.5, 3.4.15
>
> Original Estimate: 48h
> Time Spent: 4h 50m
> Remaining Estimate: 43h 10m
>
> Once the cxid value increments to -4, the client will interpret the response
> as an auth packet rather than as a response to a request and will
> transparently drop the response and the request will hang. Similarly, -2
> will be seen as a ping and will be dropped hanging the request. -1 shows up
> as a WatcherEvent and results in the error below.
>
> {quote}2019-01-07T21:58:23.209+00:00 [INFO ]
> [main-SendThread(mnds1-2-phx.ops.sfdc.net:2181)] [ClientCnxn.java:1381] [:] -
> Session establishment complete on server
> mnds1-2-phx.ops.sfdc.net/10.246.244.71:2181, sessionid = 0x267859729d66320,
> negotiated timeout = 10000
> 2019-01-07T21:58:22.281+00:00 20190107215822.281000 [WARN ]
> [main-SendThread(mnds1-3-phx.ops.sfdc.net:2181)] [ClientCnxn.java:1235] [:] -
> Session 0x267859729d66320 for server
> mnds1-3-phx.ops.sfdc.net/10.246.244.69:2181, unexpected error, closing socket
> connection and attempting reconnect
> java.io.IOException: Unreasonable length = 892612659
> at
> org.apache.jute.BinaryInputArchive.checkLength(BinaryInputArchive.java:127)
> ~[zookeeper-3.5.3-beta.jar:3.5.3-beta-8ce24f9e675cbefffb8f21a47e06b42864475a60]
> at org.apache.jute.BinaryInputArchive.readString(BinaryInputArchive.java:81)
> ~[zookeeper-3.5.3-beta.jar:3.5.3-beta-8ce24f9e675cbefffb8f21a47e06b42864475a60]
> at org.apache.zookeeper.proto.WatcherEvent.deserialize(WatcherEvent.java:66)
> ~[zookeeper-3.5.3-beta.jar:3.5.3-beta-8ce24f9e675cbefffb8f21a47e06b42864475a60]
> at
> org.apache.zookeeper.ClientCnxn$SendThread.readResponse(ClientCnxn.java:839)
> ~[zookeeper-3.5.3-beta.jar:3.5.3-beta-8ce24f9e675cbefffb8f21a47e06b42864475a60]
> at
> org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:101)
> ~[zookeeper-3.5.3-beta.jar:3.5.3-beta-8ce24f9e675cbefffb8f21a47e06b42864475a60]
> at
> org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:363)
>
> ~[zookeeper-3.5.3-beta.jar:3.5.3-beta-8ce24f9e675cbefffb8f21a47e06b42864475a60]
> at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1214)
> ~[zookeeper-3.5.3-beta.jar:3.5.3-beta-8ce24f9e675cbefffb8f21a47e06b42864475a60]
> {quote}
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)