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

Gary Gregory commented on HTTPCORE-564:
---------------------------------------

You cannot make an official release but you can build the project locally from 
a clone of the git repo:
{quote}mvn clean install
{quote}
 

> Eliminate a deadlock in IOReactor
> ---------------------------------
>
>                 Key: HTTPCORE-564
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-564
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>    Affects Versions: 4.4.10
>            Reporter: Max Rozhkov
>            Assignee: Oleg Kalnichevski
>            Priority: Major
>
> *User Story*
> We use async http client in very high load environment where several 
> thousands of http requests are sent per second. It is an SSP service where 
> timeout has to be measured and a request to be voided after timeout.
> We set up usual timeouts configured in IO Reactor and control timeouts 
> externally as well. When time is out the request will be cancelled explicitly 
> with _AbstractExecutionAwareRequest.abort()_.
> *Problem description*
> Deadlock could happen in very highload environment. See stack information 
> below.
> *Stack trace*
> {{"timeout-controller-0-00":}}
> {{ at 
> java.nio.channels.spi.AbstractInterruptibleChannel.close([email protected]/AbstractInterruptibleChannel.java:108)}}
> {{ - waiting to lock <0x000000112c420bd0> (a java.lang.Object)}}
> {{ at 
> org.apache.http.impl.nio.reactor.IOSessionImpl.close(IOSessionImpl.java:227)}}
> {{ - locked <0x000000112c420be0> (a sun.nio.ch.SelectionKeyImpl)}}
> {{ at 
> org.apache.http.impl.nio.reactor.IOSessionImpl.shutdown(IOSessionImpl.java:255)}}
> {{ at 
> org.apache.http.impl.nio.NHttpConnectionBase.shutdown(NHttpConnectionBase.java:579)}}
> {{ at 
> org.apache.http.impl.nio.conn.CPoolEntry.shutdownConnection(CPoolEntry.java:80)}}
> {{ at org.apache.http.impl.nio.conn.CPoolProxy.shutdown(CPoolProxy.java:91)}}
> {{ at 
> org.apache.http.impl.nio.client.AbstractClientExchangeHandler.discardConnection(AbstractClientExchangeHandler.java:267)}}
> {{ at 
> org.apache.http.impl.nio.client.AbstractClientExchangeHandler.cancel(AbstractClientExchangeHandler.java:447)}}
> {{ at 
> org.apache.http.client.methods.AbstractExecutionAwareRequest.abort(AbstractExecutionAwareRequest.java:90)}}
> {{ at 
> net.thumbtack.ssp.requester.AsyncHttpClient.lambda$execute$1(AsyncHttpClient.java:83)}}
> {{ at 
> net.thumbtack.ssp.requester.AsyncHttpClient$$Lambda$1768/0x00000017c29f6440.run(Unknown
>  Source)}}
> {{ at 
> net.thumbtack.adtech.concurrent.TimeLimitedExecution.lambda$future$1(TimeLimitedExecution.java:70)}}
> {{ at 
> net.thumbtack.adtech.concurrent.TimeLimitedExecution$$Lambda$1770/0x00000017c29f6c40.run(Unknown
>  Source)}}
> {{ at 
> net.thumbtack.adtech.concurrent.TimeoutController.check(TimeoutController.java:47)}}
> {{ at 
> net.thumbtack.adtech.concurrent.TimeoutController$$Lambda$1022/0x00000017c28acc40.run(Unknown
>  Source)}}
> {{ at 
> java.util.concurrent.Executors$RunnableAdapter.call([email protected]/Executors.java:515)}}
> {{ at 
> java.util.concurrent.FutureTask.runAndReset([email protected]/FutureTask.java:305)}}
> {{ at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run([email protected]/ScheduledThreadPoolExecutor.java:305)}}
> {{ at 
> java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)}}
> {{ at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)}}
> {{ at java.lang.Thread.run([email protected]/Thread.java:834)}}
> {{"pool-21-thread-1":}}
> {{ at 
> java.nio.channels.spi.AbstractSelectionKey.cancel([email protected]/AbstractSelectionKey.java:70)}}
> {{ - waiting to lock <0x000000112c420be0> (a sun.nio.ch.SelectionKeyImpl)}}
> {{ at 
> java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel([email protected]/AbstractSelectableChannel.java:255)}}
> {{ at 
> java.nio.channels.spi.AbstractInterruptibleChannel.close([email protected]/AbstractInterruptibleChannel.java:112)}}
> {{ - locked <0x000000112c420bd0> (a java.lang.Object)}}
> {{ at 
> org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.doShutdown(AbstractMultiworkerIOReactor.java:414)}}
> {{ at 
> org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:374)}}
> {{ at 
> org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:221)}}
> {{ at 
> org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64)}}
> {{ at java.lang.Thread.run([email protected]/Thread.java:834) }}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to