[ 
https://issues.apache.org/jira/browse/HTTPCORE-379?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13982330#comment-13982330
 ] 

Dmitry Potapov commented on HTTPCORE-379:
-----------------------------------------

The exceptions are:
java.io.IOException: Broken pipe
        at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
        at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
        at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
        at sun.nio.ch.IOUtil.write(IOUtil.java:65)
        at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:487)
        at 
org.apache.http.impl.nio.reactor.SessionOutputBufferImpl.flush(SessionOutputBufferImpl.java:168)
        at 
org.apache.http.impl.nio.DefaultNHttpServerConnection.produceOutput(DefaultNHttpServerConnection.java:319)
        at 
org.apache.http.impl.nio.DefaultHttpServerIODispatch.onOutputReady(DefaultHttpServerIODispatch.java:162)
        at 
org.apache.http.impl.nio.DefaultHttpServerIODispatch.onOutputReady(DefaultHttpServerIODispatch.java:51)
        at 
org.apache.http.impl.nio.reactor.AbstractIODispatch.outputReady(AbstractIODispatch.java:147)
        at 
org.apache.http.impl.nio.reactor.BaseIOReactor.writable(BaseIOReactor.java:181)
        at 
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:343)
        at 
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:317)
        at 
org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:278)
        at 
org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:106)
        at 
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:589)
        at java.lang.Thread.run(Thread.java:744)

> HttpAsyncService.exception(...) should shutdown connection on IOException
> -------------------------------------------------------------------------
>
>                 Key: HTTPCORE-379
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-379
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>          Components: HttpCore NIO
>    Affects Versions: 4.3.2
>            Reporter: Dmitry Potapov
>            Priority: Minor
>         Attachments: NHttpServer.java, shutdown-on-IOException.patch
>
>
> Currently, HttpAsyncService.exception(...) closes connection if response is 
> already submitted. On TCP RST packet received all futher attempts to write 
> into socket will result in IOException, but SelectionKey.readyOps() won't be 
> changed. So, if connection output buffer has some unsent data, 
> BaseIOReactor.writable() will be called again and again, but no data will be 
> written, so reactor thread will stuck.
> I suggest to shutdown connection if IOException occured, this will save from 
> infinite calls to BaseIOReactor.writable()



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to