Uploaded image for project: 'ZooKeeper'
  1. ZooKeeper
  2. ZOOKEEPER-1179

NettyServerCnxn does not properly close socket on 4 letter word requests

VotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 3.4.0
    • Fix Version/s: 3.4.6, 3.5.0
    • Component/s: server
    • Labels:
      None
    • Release Note:
      Thanks Rakesh, you are right, this error is not happening anymore. Flavio, I'm closing this.

      Description

      When calling a 4-letter-word to a server configured to use NettyServerCnxnFactory, the factory will not properly cancel all the keys and close the socket after sending the response for the 4lw. The close request will throw this exception, and the thread will not shut down:
      2011-09-13 12:14:17,546 - WARN [New I/O server worker #1-1:NettyServerCnxnFactory$CnxnChannelHandler@117] - Exception caught [id: 0x009300cc, /1.1.1.1:38542 => /139.172.114.138:2181] EXCEPTION: java.io.IOException: A non-blocking socket operation could not be completed immediately
      java.io.IOException: A non-blocking socket operation could not be completed immediately
      at sun.nio.ch.SocketDispatcher.close0(Native Method)
      at sun.nio.ch.SocketDispatcher.preClose(SocketDispatcher.java:44)
      at sun.nio.ch.SocketChannelImpl.implCloseSelectableChannel(SocketChannelImpl.java:684)
      at java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:201)
      at java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:97)
      at org.jboss.netty.channel.socket.nio.NioWorker.close(NioWorker.java:593)
      at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.handleAcceptedSocket(NioServerSocketPipelineSink.java:119)
      at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:76)
      at org.jboss.netty.channel.Channels.close(Channels.java:720)
      at org.jboss.netty.channel.AbstractChannel.close(AbstractChannel.java:208)
      at org.apache.zookeeper.server.NettyServerCnxn.close(NettyServerCnxn.java:116)
      at org.apache.zookeeper.server.NettyServerCnxn.cleanupWriterSocket(NettyServerCnxn.java:241)
      at org.apache.zookeeper.server.NettyServerCnxn.access$0(NettyServerCnxn.java:231)
      at org.apache.zookeeper.server.NettyServerCnxn$CommandThread.run(NettyServerCnxn.java:314)
      at org.apache.zookeeper.server.NettyServerCnxn$CommandThread.start(NettyServerCnxn.java:305)
      at org.apache.zookeeper.server.NettyServerCnxn.checkFourLetterWord(NettyServerCnxn.java:674)
      at org.apache.zookeeper.server.NettyServerCnxn.receiveMessage(NettyServerCnxn.java:791)
      at org.apache.zookeeper.server.NettyServerCnxnFactory$CnxnChannelHandler.processMessage(NettyServerCnxnFactory.java:217)
      at org.apache.zookeeper.server.NettyServerCnxnFactory$CnxnChannelHandler.messageReceived(NettyServerCnxnFactory.java:141)
      at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
      at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
      at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:350)
      at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:281)
      at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:201)
      at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:46)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:619)

        Attachments

        1. ZOOKEEPER-1179.patch
          5 kB
          Rakesh Radhakrishnan
        2. ZOOKEEPER-1179.patch
          0.6 kB
          Germán Blanco
        3. ZOOKEEPER-1179.patch
          2 kB
          Rakesh Radhakrishnan

        Issue Links

          Activity

            People

            • Assignee:
              rakeshr Rakesh Radhakrishnan
              Reporter:
              fournc Camille Fournier

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment