You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Cheng (JIRA)" <ji...@apache.org> on 2014/11/26 02:07:13 UTC

[jira] [Created] (ZOOKEEPER-2091) Possible logic error in ClientCnxnSocketNIO

Cheng created ZOOKEEPER-2091:
--------------------------------

             Summary: Possible logic error in ClientCnxnSocketNIO
                 Key: ZOOKEEPER-2091
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2091
             Project: ZooKeeper
          Issue Type: Bug
          Components: java client
    Affects Versions: 3.4.6
            Reporter: Cheng
            Priority: Minor


When SASL authentication is enabled, the ZooKeeper client will finally call ClientCnxnSocketNIO#sendPacket(Packet p) to send a packet to server:
@Override
void sendPacket(Packet p) throws IOException {
    SocketChannel sock = (SocketChannel) sockKey.channel();
    if (sock == null) {
        throw new IOException("Socket is null!");
    }
    p.createBB();
    ByteBuffer pbb = p.bb;
    sock.write(pbb);
}

One problem I can see is that the sock is non-blocking, so when the sock's output buffer is full(theoretically), only part of the Packet is sent out and the communication will break.



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