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)

Reply via email to