Benjamin Reed commented on ZOOKEEPER-136:

There are two problems in the code. First, the pendingSyncs hashtable assumes 
there will only be one pending request for a change operation. This is not a 
valid assumption. The syncHandler also assumes a single outstanding request for 
a given session since it removes the session handler from the table.

I think a fix needs to get rid of both hashtables since it is very hard to do 
reliably. Instead we should attach information to Request to hang triggers to a 
list of SyncRequests. We should also tuck away the FollowerHandle to talk to in 
a sync specific subclass of Request.

I tried doing the above and it worked out pretty well from a code 
understandability sense, but I still working on making test cases pass.

> sync causes hang in all followers of quorum
> -------------------------------------------
>                 Key: ZOOKEEPER-136
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-136
>             Project: Zookeeper
>          Issue Type: Bug
>    Affects Versions: 3.0.0
>            Reporter: Patrick Hunt
>            Assignee: Patrick Hunt
>             Fix For: 3.0.0
>         Attachments: log_ZOOKEEPER-136.txt, testfails_ZOOKEEPER-136.patch
> The attached test causes all of the followers of a quorum to hang. Leader 
> continues to function correctly.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

Reply via email to