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

Michi Mutsuzaki resolved ZOOKEEPER-1179.
----------------------------------------

      Resolution: Fixed
    Release Note: Thanks Rakesh, you are right, this error is not happening 
anymore. Flavio, I'm closing this.

> NettyServerCnxn does not properly close socket on 4 letter word requests
> ------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-1179
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1179
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.4.0
>            Reporter: Camille Fournier
>            Assignee: Rakesh R
>            Priority: Critical
>             Fix For: 3.4.6, 3.5.0
>
>         Attachments: ZOOKEEPER-1179.patch, ZOOKEEPER-1179.patch, 
> ZOOKEEPER-1179.patch
>
>
> 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)



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to