hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pete Keyes <PKe...@starbucks.com>
Subject Re: HttpClient is not proving to be thread-safe and reusable -- probably user error
Date Tue, 21 Jun 2016 14:56:32 GMT
You failed to consume the response.  Apache-HC will never return the
connection to the pool.  Once you've hit the 500th thread all connections
are leased.  In the run() method simply add a finally to your try/catch
and move the response object into scope.

  HttpResponse response=null;
  try {
      response = client.execute(...);
  catch() {
  finally {
      if(response != null) {


On 6/21/16, 7:42 AM, "Shawn Heisey" <apache@elyograg.org> wrote:

>At the paste URL below is the code I'm using in a test.  The test is
>checking for race conditions in some server code I've written:
>This code will stop working correctly during the second loop.  On the
>first loop, it creates 400 threads and requests the URL once in each
>thread.  On the second loop, it tries to do it again, but hangs after
>the 100th thread is created.  When I create the client, i set
>maxConnPerRoute to 500, so it is related to that.  It seems that each
>connection isn't being removed from the internal tracking after it
>If I move the httpclient creation inside the for loop and uncomment the
>"client.close();" at the end of the loop, then everything works ... but
>it seems like Ishould be able to use one client for this entire test.
>What have I done wrong in my code?
>threads is a Set<Thread>.
>firstFailedLoop and loopNum are AtomicInteger.
>numThreadsPerRun is set to 400.
>If anything in the code is unclear, please let me know what needs
>To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
>For additional commands, e-mail: httpclient-users-help@hc.apache.org

To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org

View raw message