yangkun created ZOOKEEPER-3135:
----------------------------------
Summary: ClientCnxnSocket#updateLastSendAndHeard() method update
lastSend、lastHeard has some problem
Key: ZOOKEEPER-3135
URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3135
Project: ZooKeeper
Issue Type: Bug
Reporter: yangkun
ClientCnxnSocket#updateLastSendAndHeard() method update lastSend、lastHeard to
now:
{code:java}
void updateLastSendAndHeard() {
this.lastSend = now;
this.lastHeard = now;
}
void updateNow() {
now = Time.currentElapsedTime();
}{code}
In SendThread#run() method, there are some place call updateLastSendAndHeard()
method, simplified as follows:
{code:java}
public void run() {
clientCnxnSocket.updateNow();
// place-1. update lastSend、lastHeard
clientCnxnSocket.updateLastSendAndHeard();
while (state.isAlive()) {
try {
// ...some operation
startConnect(serverAddress);
// place-2. update lastSend、lastHeard
clientCnxnSocket.updateLastSendAndHeard();
}
}{code}
If so, place-1 and place-2, the lastSend、lastHeard value is equals, However,
between place-1 and place-2 has some operation,consume some time,it should
actually be unequal.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)