[ https://issues.apache.org/jira/browse/ZOOKEEPER-3593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17056853#comment-17056853 ]
maoling commented on ZOOKEEPER-3593: ------------------------------------ [~hzlu] Thanks for your compatibility concern. {code:java} 1MB means we can create 100000 child path, each child with 10 data length 50000 child path, each child with 20 data length 1000 child path, each child with 1KB data length{code} This is enough for most cases. zk is designed for meta-data, too large data is not very recommended. Yes, users can meet what you had described above when in a not good practice. They can set *jute.maxbuffer* to *2MB* in their client side code to survive. This patch was intended to fix the *jute.maxbuffer*'s inconsistency setting between client and server. I am alway here if you have more concerns > fix the default value of jute.maxbuffer in client side and an optimization > for the documentation > ------------------------------------------------------------------------------------------------ > > Key: ZOOKEEPER-3593 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3593 > Project: ZooKeeper > Issue Type: Improvement > Affects Versions: 3.6.0, 3.5.5, 3.5.6 > Reporter: maoling > Assignee: maoling > Priority: Minor > Labels: pull-request-available > Fix For: 3.6.0 > > Time Spent: 1h > Remaining Estimate: 0h > > > {code:java} > 2019-10-27 18:08:41 INFO ZooKeeper:109 - Client > environment:java.io.tmpdir=/var/folders/kj/092gpj_s2hvdgx77c9ghqdv00000gp/T/ > 2019-10-27 18:08:41 INFO ZooKeeper:109 - Client environment:java.compiler=<NA> > 2019-10-27 18:08:41 INFO ZooKeeper:109 - Client environment:os.name=Mac OS X > 2019-10-27 18:08:41 INFO ZooKeeper:109 - Client environment:os.arch=x86_64 > 2019-10-27 18:08:41 INFO ZooKeeper:109 - Client environment:os.version=10.13.6 > 2019-10-27 18:08:41 INFO ZooKeeper:109 - Client environment:user.name=wenba > 2019-10-27 18:08:41 INFO ZooKeeper:109 - Client > environment:user.home=/Users/wenba > 2019-10-27 18:08:41 INFO ZooKeeper:109 - Client > environment:user.dir=/Users/wenba/workspaces/workspace_learning/YCSB > 2019-10-27 18:08:41 INFO ZooKeeper:109 - Client > environment:os.memory.free=234MB > 2019-10-27 18:08:41 INFO ZooKeeper:109 - Client > environment:os.memory.max=3641MB > 2019-10-27 18:08:41 INFO ZooKeeper:109 - Client > environment:os.memory.total=245MB > 2019-10-27 18:08:41 INFO ZooKeeper:868 - Initiating client connection, > connectString=127.0.0.1:2180/bm sessionTimeout=30000 > watcher=site.ycsb.db.zookeeper.ZKClient$SimpleWatcher@4b506000 > 2019-10-27 18:08:41 INFO X509Util:79 - Setting -D > jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated > TLS renegotiation > 2019-10-27 18:08:41 INFO ClientCnxnSocket:237 - jute.maxbuffer value is > 4194304 Bytes > FAILED: Count=6, Max=106559, Min=99392, Avg=103157.33, 90=105791, 99=106559, > 99.9=106559, 99.99=106559]FAILED: Count=6, Max=106559, Min=99392, > Avg=103157.33, 90=105791, 99=106559, 99.9=106559, 99.99=106559]2019-10-27 > 18:08:51 INFO ClientCnxn:1112 - Opening socket connection to server > localhost/127.0.0.1:2180. Will not attempt to authenticate using SASL > (unknown error)2019-10-27 18:08:51 INFO ClientCnxn:959 - Socket connection > established, initiating session, client: /127.0.0.1:51795, server: > localhost/127.0.0.1:21802019-10-27 18:08:51 INFO ClientCnxn:1394 - Session > establishment complete on server localhost/127.0.0.1:2180, sessionid = > 0x1000c6e0658000a, negotiated timeout = 300002019-10-27 18:08:51 WARN > ClientCnxn:1246 - Session 0x1000c6e0658000a for server > localhost/127.0.0.1:2180, unexpected error, closing socket connection and > attempting reconnectjava.io.IOException: Unreasonable length = 1073590 at > org.apache.jute.BinaryInputArchive.checkLength(BinaryInputArchive.java:127) > at org.apache.jute.BinaryInputArchive.readBuffer(BinaryInputArchive.java:92) > at > org.apache.zookeeper.proto.GetDataResponse.deserialize(GetDataResponse.java:56) > at > org.apache.zookeeper.ClientCnxn$SendThread.readResponse(ClientCnxn.java:919) > at > org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:101) > at > org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:363) > at > org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1223)2019-10-27 > 18:08:51 ERROR ZKClient:128 - Error when reading a > path:/user5344789772525948776,tableName:usertableorg.apache.zookeeper.KeeperException$ConnectionLossException: > KeeperErrorCode = ConnectionLoss for /user5344789772525948776 > {code} > > > From the log I saw *jute.maxbuffer* in my client side is 4194304 Bytes, but > I cannot read a znode which is almost 1MB -- This message was sent by Atlassian Jira (v8.3.4#803005)