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

Oleg Kalnichevski edited comment on HTTPCORE-334 at 2/20/13 10:50 PM:
----------------------------------------------------------------------

Hi Scott

I added this line while trying to find a fix for HTTPCORE-319. Apparently it 
was a mistake. Many thanks for finding the problem and fixing it. Patched 
committed to SVN trunk and 4.2.x branch. 

Oleg 
                
      was (Author: olegk):
    Hi Scott

I added this line while trying to find a fix for HTTPCORE-319. Apparently it 
was a mistake. Many thanks for finding the problem and fixing it.

Oleg 
                  
> https request to a non-responsive but alive port results in a busy loop in 
> one thread
> -------------------------------------------------------------------------------------
>
>                 Key: HTTPCORE-334
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-334
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>          Components: HttpCore NIO
>    Affects Versions: 4.2.4
>         Environment: Windows 8 64-bit
> JDK 1.7.0_11
>            Reporter: Scott Stanton
>             Fix For: 4.2.4, 4.3-alpha2
>
>         Attachments: HTTPCORE-334.patch, TestHttpsAsyncTimeout.java
>
>
> Steps to reproduce:
> * Start a process that listens on a socket, accepts the connection, but does 
> not read any data
> * In a second processs, establish an https connection 
> At this point, one reactor thread will go into a busy loop getting writable 
> events but not writing any data.  As far as I can tell, this continues 
> indefinitely until either the client or the server closes the port.  Ideally 
> this scenario would result in no cpu overhead as the selector should only be 
> waiting for read events if it doesn't have any data to write.  Eventually it 
> should hit an idle timeout so the client can recover from a non responsive 
> server.
> Here is a stack snapshot for the busy thread:
> Agent-003 [RUNNABLE, IN_NATIVE] CPU time: 39s
> com.yourkit.probes.Table.createRow()
> com.yourkit.probes.Table.createRow(int)
> com.yourkit.probes.builtin.Sockets$SocketChannel_write_Probe.onEnter(SocketChannel)
> sun.nio.ch.SocketChannelImpl.write(ByteBuffer)
> org.apache.http.nio.reactor.ssl.SSLIOSession.sendEncryptedData()
> org.apache.http.nio.reactor.ssl.SSLIOSession.outboundTransport()
> org.apache.http.impl.nio.reactor.AbstractIODispatch.outputReady(IOSession)
> org.apache.http.impl.nio.reactor.BaseIOReactor.writable(SelectionKey)
> org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(SelectionKey)
> org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(Set)
> org.apache.http.impl.nio.reactor.AbstractIOReactor.execute()
> org.apache.http.impl.nio.reactor.BaseIOReactor.execute(IOEventDispatch)
> org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run()
> java.lang.Thread.run()
> com.electriccloud.util.EcThread.run()

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

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

Reply via email to