The concurrent get code uses a timed wait for task completion: exec.awaitTermination(AWAIT_TERMINATION_TIMEOUT, TimeUnit.SECONDS); However, it then uses an unconditional get(): for (Future<HTTPSampleResult> future : retExec) { final HTTPSampleResult binRes = future.get(); This will wait until task completion, which may be forever. The solution is to use a very short timeout (the code has already waited for the required time) and catch the TimeoutException.
URL: http://svn.apache.org/viewvc?rev=1179017&view=rev Log: Bug 51957 - Concurrent get can hang if a task does not complete Modified: jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSamplerBase.java jakarta/jmeter/trunk/xdocs/changes.xml
This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/2579