Hi,
I am new to zookeeper, so please bear with my questions :)
I use zookeeper along with bookkeeper and see session expiries every now
and then. My tickTime is 3s and Zookeeper is initialized with a
sessionTimeout at 10s. The network connections are controlled, zk is not
under any load and
The message I get is typically from the following lines in ClientCnxn.java:
SendThread::run() :
throw new SessionTimeoutException(
"Client session timed out, have not heard from server in "
+ clientCnxnSocket.getIdleRecv() + "ms"
+ " for sessionid 0x"
+ Long.toHexString(sessionId));
My question is: in the code we do a "clientCnxnSocket.updateNow()" outside
the while loop while we use the same value of 'now' for all subsequent
calculations _within_ the loop in the calls to
"clientCnxnSocket.updateLastSendAndHeard()",
"clientCnxnSocket.getIdleRecv()" and "clientCnxnSocket.updateLastSend()".
Won't this begin to gradually veer away from the sessionTimeout / 3 ? IIRC,
the code only updates the value of "now" for (state == States.
CONNECTEDREADONLY).
Thanks,
Arun