When attempting stress tests consisting of several sequential HTTPS user login requests at a relatively high rate (e.g. 200 threads or more at a rate of 1 per second, i.e. a 200 second ramp-up period or less), I noticed that after some initial successful iterations all the successive authentications failed with timeout errors. By inspecting the code I found an apparent contradiction in the following method of the class org.apache.jmeter.util.SSLManager: /** * Static accessor for the SSLManager object. The SSLManager is a singleton. */ public static final SSLManager getInstance() { if (null == SSLManager.manager) { return new JsseSSLManager(SSLManager.sslProvider); } return SSLManager.manager; } As you can see, no caching is performed on the object SSLManager.manager (that remains unused), which causes high memory consumption and is likely to be the responsible of the observed faulty behaviour. By replacing return new JsseSSLManager(SSLManager.sslProvider); with SSLManager.manager = new JsseSSLManager(SSLManager.sslProvider); I could solve my issue.
Created attachment 20613 [details] Result of `diff -u SSLManager.java.orig SSLManager.java`
Thanks for the report and patch. This was a silly error introduced when the dynamic class loading was replaced ... mea culpa. Fixed in SVN r564705
This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/1989