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

Oleg Kalnichevski commented on HTTPCORE-647:
--------------------------------------------

[~lukasodaniel] This is presently the only reasonable fix I can think of:
https://github.com/ok2c/httpcomponents-core/commit/03ddd7889d807a8b7dd6dc7b7b23f5be0bce9b60

Oleg

> Connection aborted infinite loop 
> ---------------------------------
>
>                 Key: HTTPCORE-647
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-647
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>    Affects Versions: 4.4.13
>         Environment: java 8
>            Reporter: Lukas O'Daniel
>            Priority: Major
>             Fix For: 4.4.14
>
>         Attachments: Client.java, Entity.java, Server.java
>
>
> There is some issue that occurs when a response is not fully written and the 
> connection closes or times out in 4.4.13. When this occurs, there is some 
> infinite loop that logs the stack trace multiple times per millisecond. I 
> have attached a simple example that can reproduce this behavior. The entity 
> I'm using is based on NByteArrayEntity. In practice this issue was extremely 
> rare on our servers, but requires restart to fix.
>  
> This can be reproduced by running [^Server.java] and then running 
> [^Client.java]
>  
> For localhost I get the error and stack trace dumped infinitely:
>  {{java.io.IOException: An established connection was aborted by the software 
> in your host machinejava.io.IOException: An established connection was 
> aborted by the software in your host machine at 
> sun.nio.ch.SocketDispatcher.write0(Native Method) at 
> sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51) 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:471) at 
> org.apache.http.impl.nio.reactor.SessionOutputBufferImpl.flush(SessionOutputBufferImpl.java:182)
>  at 
> org.apache.http.impl.nio.DefaultNHttpServerConnection.produceOutput(DefaultNHttpServerConnection.java:316)
>  at 
> org.apache.http.impl.nio.DefaultHttpServerIODispatch.onOutputReady(DefaultHttpServerIODispatch.java:248)
>  at 
> org.apache.http.impl.nio.DefaultHttpServerIODispatch.onOutputReady(DefaultHttpServerIODispatch.java:57)
>  at 
> org.apache.http.impl.nio.reactor.AbstractIODispatch.outputReady(AbstractIODispatch.java:145)
>  at 
> org.apache.http.impl.nio.reactor.BaseIOReactor.writable(BaseIOReactor.java:187)
>  at 
> org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:341)
>  at 
> org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
>  at 
> org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
>  at 
> org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
>  at 
> org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:591)
>  at java.lang.Thread.run(Thread.java:748)}}
>  
> I was getting the equivalent on remote hosts with different error message:
>  \{{ java.io.IOException: An existing connection was forcibly closed by the 
> remote host}}
>  
> Apologies for formatting, etc this is my first open source bug report. 
> This seems like it could be related to the fix for HTTPCORE-607. I don't get 
> this issue, at least for this example code, using 4.4.12 and previous.
>   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org

Reply via email to