Hello, I attached a patch to: - https://bz.apache.org/bugzilla/show_bug.cgi?id=58807
Hope somebody can have a look. Regards On Sat, Feb 24, 2018 at 7:06 PM, Philippe Mouawad < philippe.moua...@gmail.com> wrote: > Hello, > While working on Migration to last HC4.5 APIs and testing Client > Certificate (see another question on how to include tests for it), I > confirmed that the bug reported by Rainer was still here. > > This bug has the following impact: > > - Whenever you set "https.use.cached.ssl.context=false " which is > required for Client Certificate Testing, you end up : > - Replaying SSL Handshake on every sample while we shouldn't > - Losing KeepAlive > - Another thing he tackles is that fact that within Thread Group > iteration we reuse objects we shouldn't > > IMO, we need to tackle it, looking at Rainer patch I agree with almost > all his proposals except for what I describe below. > > > Let's see use most common cases : > > - 0/ We are testing HTTP, Rainer is correct saying that when we switch > to next iteration and are using KeepAlive we use the same connection while > we shouldn't , this would be PROBLEM A below > - 1/ We are testing HTTPS only without client certificate, then > https.use.cached.ssl.context=true is ok within 1 thread group > iteration. What would be unrealistic is the fact that SSL Handshake will > not occur for next iteration. Let's call this case PROBLEM A. > - 2/ We are testing HTTPS only WITH client certificate, then since > https.use.cached.ssl.context=false is needed we have a problem PROBLEM > B. > > *ASSUMPTION:* > > First, I think that we should consider that Each Thread Group Iteration is > a new user, indeed, If one wants to make the same user loop, he can easily > add a Loop Controller as child of Thread Group and it's ok. > > *So let's zoom to PROBLEM B first:* > > - If we make the assumption above, part of the patch of Rainer can be > reused: > - Have a thread local hold the fact that reset occured, but Maybe > using JMeterVariables would be better particularly if one day we decide > to > switch to different model 1 VU == 1 Thread. > - What should be changed in Rainer patch is the SSL reset, indeed > for HC4.5 we need to close idle and expired connections to really reset > SSL > State > - What I don't get about Rainer patch is wether we should do the > close on all HTTPCLIENT Instances of VUs or not. I think we should but > It > would be great if another brain or more would confirm > > *Let's zoom to PROBLEM A:* > > In summary, whenever we make a new Thread Group iteration, we must start > with new connections and not reuse existing ones. > > So Rainer patch looks ok to me. > > But: > > 1/ I would personally set default to > > - > > reuse.http.connections=false > > > 2/ I would not introduce reuse.http.client > > 3/ I would not as a consequence reset HttpClient as it is not needed to reset > state if I am not wrong and it would > > introduce "initialization cost" in requests timing > > What's your thoughts ? > > > -- > Regards > Philippe M. > > > -- Cordialement. Philippe Mouawad.