[ 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)