[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14946850#comment-14946850
 ] 

Arshad Mohammad commented on ZOOKEEPER-2251:
--------------------------------------------

How to reproduce the:
>From the logs it is very clear that Client is waiting in 
>{{org.apache.zookeeper.ClientCnxn.submitRequest()}} on Packet object.
{code}
synchronized (packet) {
    while (!packet.finished) {
        packet.wait();
    }
}
{code}
Above wait ends when packet.notifyAll() is called from 
{{org.apache.zookeeper.ClientCnxn.finishPacket(Packet)}}
To reproduce client hang scenario through test we can override the 
{{org.apache.zookeeper.ClientCnxn.finishPacket(Packet)}} method, so that it 
does not call packet.notifyAll(). 

> Add Client side packet response timeout to avoid infinite wait.
> ---------------------------------------------------------------
>
>                 Key: ZOOKEEPER-2251
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2251
>             Project: ZooKeeper
>          Issue Type: Bug
>            Reporter: nijel
>            Assignee: Arshad Mohammad
>
> I came across one issue related to Client side packet response timeout In my 
> cluster many packet drops happened for some time.
> One observation is the zookeeper client got hanged. As per the thread dump it 
> is waiting for the response/ACK for the operation performed (synchronous API 
> used here).
> I am using 
> zookeeper.serverCnxnFactory=org.apache.zookeeper.server.NIOServerCnxnFactory
> Since only few packets missed there is no DISCONNECTED event occurred.
> Need add a "response time out" for the operations or packets.
> *Comments from [~rakeshr]*
> My observation about the problem:-
> * Can use tools like 'Wireshark' to simulate the artificial packet loss.
> * Assume there is only one packet in the 'outgoingQueue' and unfortunately 
> the server response packet lost. Now, client will enter into infinite 
> waiting. 
> https://github.com/apache/zookeeper/blob/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java#L1515
> * Probably we can discuss more about this problem and possible solutions(add 
> packet ACK timeout or another better approach) in the jira.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to