I am using JMeter 3.1 and HttpClient4
I have the following httpclient settings in user.properties

httpclient4.retrycount=3
httpclient4.validate_after_inactivity=20000
httpclient4.time_to_live=1800000

I have 5 load generators and each generator is running approx. 6,000 VU across 
a number of different samplers.

We are migrating away from a commercial product, so in addition to this load, I 
have 3 commercial product load generators running the same profile and the 
effective server load is 75% JMeter and 25% other

We do not have any problems with the commercial product, which we have been 
using for 3 years.

CPU and memory are fine on the Linux JMeter boxes, but I am seeing frequent 
NoHttpResponseException errors

I know that the retry logic is happening as in the test I can see these 
messages appearing and there are far more of these than actual errors and it's 
logging my retry count as 3

2017/08/07 14:36:09 INFO  - 
org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$7: I/O exception 
(java.net.SocketException) caught when processing request to 
{s}->https://host:443: Connection reset
2017/08/07 14:36:09 INFO  - 
org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$7: Retrying request to 
{s}->https://host:443

So, I've simplified the test down to a single machine and enabled debug and run 
the test until I see the first error.  I get this in the log, but there is no 
retry logged

2017/08/07 16:06:32 DEBUG - jmeter.protocol.http.control.CacheManager: GET(OAH) 
https://host/experience/racing/upcomingracing null
2017/08/07 16:06:32 DEBUG - jmeter.protocol.http.control.HC4CookieHandler: 
Found 6 cookies for https:// host/experience/racing/upcomingracing
2017/08/07 16:06:32 DEBUG - jmeter.protocol.http.control.CacheManager: inCache 
https:// host/experience/racing/upcomingracing null
2017/08/07 16:06:32 DEBUG - jmeter.protocol.http.sampler.HTTPHC4Impl: 
IOException org.apache.http.NoHttpResponseException: host:443 failed to respond
        at 
org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:143)
        at 
org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
        at 
org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
        at 
org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:281)
        at 
org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:259)
        at 
org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:209)
        at 
org.apache.jmeter.protocol.http.sampler.MeasuringConnectionManager$MeasuredConnection.receiveResponseHeader(MeasuringConnectionManager.java:212)
        at 
org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
        at 
org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
        at 
org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:686)
        at 
org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:488)
        at 
org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
        at 
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
        at 
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:654)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:413)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
        at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1166)
        at 
au.com.williamhill.perftest.endpoint.Browser.sendRequest(Browser.java:202)
        at 
au.com.williamhill.perftest.jmeter.samplers.Command.sendRequest(Command.java:462)
        at 
au.com.williamhill.perftest.jmeter.samplers.Command.sendUrls(Command.java:531)
        at 
au.com.williamhill.perftest.jmeter.samplers.Command.postUrls(Command.java:271)
        at 
au.com.williamhill.perftest.jmeter.samplers.ViewRace.viewRace(ViewRace.java:162)
        at 
au.com.williamhill.perftest.jmeter.samplers.ViewRace.runTest(ViewRace.java:113)
        at 
org.apache.jmeter.protocol.java.sampler.JavaSampler.sample(JavaSampler.java:196)
        at 
org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:475)
        at 
org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:418)
        at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:249)
        at java.lang.Thread.run(Thread.java:748)

The request sequence is for the virtual user is


1.       Request 1 starts at 16:06:07.982

2.       Requests 2...17 all successful with request 17 finishing at 
16:06:32.134

3.       Request 18 starts at 16:06:32.135 and throws this exception after an 
elapsed time of 78ms, ending at 16:06:32.213

4.       Request 19 starts at 16:06:32.213 and is successful

5.       Requests continue to be successful

I don't see why this is not entering the retry logic.  I have debug logging on

log_level.http=DEBUG
log_level.jmeter.protocol=DEBUG

so, I don't see why I don't see the log message

this.log.debug("Closing the connection.");

in the IOException handling at line 690 in DefaultRequestDirector

I can easily create these errors. Any help on how to diagnose further.

Thanks
Antony






Reply via email to