[ 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)