You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Igor Motov (JIRA)" <ji...@apache.org> on 2012/10/11 01:49:02 UTC

[jira] [Updated] (ZOOKEEPER-1560) Zookeeper client hangs on creation of large nodes

     [ https://issues.apache.org/jira/browse/ZOOKEEPER-1560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Igor Motov updated ZOOKEEPER-1560:
----------------------------------

    Attachment: ZOOKEEPER-1560.patch

Test that reproduces that issue.
                
> Zookeeper client hangs on creation of large nodes
> -------------------------------------------------
>
>                 Key: ZOOKEEPER-1560
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1560
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: java client
>    Affects Versions: 3.4.3, 3.5.0
>            Reporter: Igor Motov
>         Attachments: ZOOKEEPER-1560.patch
>
>
> To reproduce, try creating a node with 0.5M of data using java client. The test will hang waiting for a response from the server. See the attached patch for the test that reproduces the issue.
> It seems that ZOOKEEPER-1437 introduced a few issues to {{ClientCnxnSocketNIO.doIO}} that prevent {{ClientCnxnSocketNIO}} from sending large packets that require several invocations of {{SocketChannel.write}} to complete. The first issue is that the call to {{outgoingQueue.removeFirstOccurrence(p);}} removes the packet from the queue even if the packet wasn't completely sent yet.  It looks to me that this call should be moved under {{if (!pbb.hasRemaining())}} The second issue is that {{p.createBB()}} is reinitializing {{ByteBuffer}} on every iteration, which confuses {{SocketChannel.write}}. And the third issue is caused by extra calls to {{cnxn.getXid()}} that increment xid on every iteration and confuse the server.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira