[ https://issues.apache.org/jira/browse/HTTPCLIENT-2314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17803639#comment-17803639 ]
Oleg Kalnichevski commented on HTTPCLIENT-2314: ----------------------------------------------- > well in this particular case I am not reusing an {{HttpClient}} heavily but > instead create new ones when I need them. [~phax] Well, there appears to be a race condition in your code that leads to execution of requests with an HttpClient instance whose connection pool has already been shut down. Instead of throwing away a perfectly valid HttpClient along with its pool you would be better off just flushing all persistent connections from the pool instead. > Did you add some ThreadLocal or so? No, I did not. ThreadLocal can be very evil. We use them extremely sparingly . Oleg > IllegalStateException: Endpoint is not connected > ------------------------------------------------ > > Key: HTTPCLIENT-2314 > URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2314 > Project: HttpComponents HttpClient > Issue Type: Bug > Components: HttpClient (classic) > Affects Versions: 5.2, 5.3 > Reporter: Philip Helger > Priority: Major > Attachments: debuglog-httpclient-2314.txt > > > Using `PoolingHttpClientConnectionManager`, under high traffic situations it > occurs consistently that the exception "Endpoint is not connected" is invoked. > > The full stacktrace looks like this: > {{Caused by: java.lang.IllegalStateException: Endpoint is not connected}} > {{ at org.apache.hc.core5.util.Asserts.check(Asserts.java:38) > ~[httpcore5-5.2.4.jar:5.2.4]}} > {{ at > org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager$InternalConnectionEndpoint.getValidatedPoolEntry(PoolingHttpClientConnectionManager.java:664) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager$InternalConnectionEndpoint.setSocketTimeout(PoolingHttpClientConnectionManager.java:697) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.InternalExecRuntime.execute(InternalExecRuntime.java:211) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.MainClientExec.execute(MainClientExec.java:116) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.ConnectExec.execute(ConnectExec.java:188) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.ProtocolExec.execute(ProtocolExec.java:192) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.HttpRequestRetryExec.execute(HttpRequestRetryExec.java:113) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.ContentCompressionExec.execute(ContentCompressionExec.java:152) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.RedirectExec.execute(RedirectExec.java:116) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.InternalHttpClient.doExecute(InternalHttpClient.java:170) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:245) > ~[httpclient5-5.3.jar:5.3]}} > {{ at > org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:188) > ~[httpclient5-5.3.jar:5.3]}} > > Unfortunately I don't have a standalone example to reproduce it. > Any suggestions for a workaround???? -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org