hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shawn Heisey <apa...@elyograg.org>
Subject HttpClient is not proving to be thread-safe and reusable -- probably user error
Date Tue, 21 Jun 2016 14:42:43 GMT
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:

http://apaste.info/Vs6

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
completes.

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
clarification.

Thanks,
Shawn


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


Mime
View raw message