Expose/create KeeperException for "Packet len <x> is out of range!" error when
jute max buffer size is exceeded
---------------------------------------------------------------------------------------------------------------
Key: ZOOKEEPER-1313
URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1313
Project: ZooKeeper
Issue Type: Bug
Reporter: Daniel Lord
When a zookeeper client receives a Packet that is over the jute max buffer
limit the behavior that is exposed to the callers of the zookeeper client is
misleading. When the packet length exceeds the max size an IOException is
thrown. This is caught and handled by the SendThread by cleaning up the
current connection and enqueueing a Disconnected event. The immediate caller
of zookeeper sees this as a ConnectionLossException with a Disconnected event
on the main Watcher. This state transition is a bit misleading because under
many circumstances as soon as the SyncConnected event is received retrying the
same operation will succeed. However, in this case it is likely that the
zookeeper client will reconnect immediately and if the operation is retried the
same jute max buffer limit exception will be thrown which will trigger another
disconnect and reconnect.
It would be great if the exception was exposed to the caller of the zookeeper
client some how so that a more appropriate action can be taken. For instance,
it might be appropriate to fail completely or to attempt to establish a new
session.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira