Again, I just implemented Retry on HTTPHC3.1 setting it to 0 and I get low 0.12% error like with HTTP 4.1. Do you want me to submit a patch to HTTPHC3.1 ? Regards Philippe
On Fri, Sep 23, 2011 at 2:23 PM, Philippe Mouawad < philippe.moua...@gmail.com> wrote: > Hello, > Don't you think you should keep default to 0 and add same configuration to > HTTPHC3 ? > Maybe it's a real server issue that is hidden by retry set to 3. > Can't we check in Jakarta apache logs to see if these errors are mentionned > ? > > Regards > Philippe > > > On Fri, Sep 23, 2011 at 11:12 AM, Milamber <milam...@apache.org> wrote: > >> Hello, >> >> (on JMeter 2.5.1RC1) >> Don't retry automatically with HC4 sampler seems introduce a bug on load >> tests using HC4. >> >> When you run a load test, some errors "The target server failed to >> respond" can appear on response data. >> >> With wireshark, this error arrives at the end of TCP conversations: the >> GET request is sent, but no server response (the connection has been >> closed, I suppose). >> >> If I changes the property httpclient4.retrycount to 3, the load tests >> works fine, with no errors. >> >> This bug is tested on Linux with JVM5/7 and WinXP with JVM7 >> >> Test case is the Simple Test Case on this bugs: >> https://issues.apache.org/bugzilla/show_bug.cgi?id=51863 >> >> (Note: no errors with HC3.1) >> (Questions: retrycount exists on HC3.1? if yes what default value?) >> >> ====Response data==== >> org.apache.http.NoHttpResponseException: The target server failed to >> respond >> at >> >> org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:101) >> at >> >> org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:252) >> at >> >> org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:281) >> at >> >> org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:247) >> at >> >> org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:219) >> at >> >> org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:298) >> at >> >> org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125) >> at >> >> org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645) >> at >> >> org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464) >> at >> >> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) >> at >> >> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754) >> at >> >> org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:265) >> at >> >> org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:62) >> at >> >> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1010) >> at >> >> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:996) >> at >> >> org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:383) >> at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:276) >> at java.lang.Thread.run(Thread.java:595) >> ===================== >> >> Milamber >> >> Le 01/09/2011 17:52, s...@apache.org a ecrit : >> > Author: sebb >> > Date: Thu Sep 1 17:52:41 2011 >> > New Revision: 1164186 >> > >> > URL: http://svn.apache.org/viewvc?rev=1164186&view=rev >> > Log: >> > Don't automatically retry with HttpCLient4 sampler >> > >> > Modified: >> > jakarta/jmeter/trunk/bin/jmeter.properties >> > >> jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java >> > jakarta/jmeter/trunk/xdocs/changes.xml >> > jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml >> > >> > Modified: jakarta/jmeter/trunk/bin/jmeter.properties >> > URL: >> http://svn.apache.org/viewvc/jakarta/jmeter/trunk/bin/jmeter.properties?rev=1164186&r1=1164185&r2=1164186&view=diff >> > >> ============================================================================== >> > --- jakarta/jmeter/trunk/bin/jmeter.properties (original) >> > +++ jakarta/jmeter/trunk/bin/jmeter.properties Thu Sep 1 17:52:41 2011 >> > @@ -251,7 +251,7 @@ log_level.jorphan=INFO >> > # 0 now means don't retry connection (in 2.3 and before it meant no >> tries at all!) >> > >> > >> #--------------------------------------------------------------------------- >> > -# HTTPClient configuration >> > +# Commons HTTPClient configuration >> > >> #--------------------------------------------------------------------------- >> > >> > # define a properties file for overriding Commons HttpClient parameters >> > @@ -302,7 +302,7 @@ log_level.jorphan=INFO >> > #log_file.httpclient=httpclient.log >> > >> > >> > -# Apache HttpClient logging examples >> > +# Apache Commons HttpClient logging examples >> > # >> > # Enable header wire + context logging - Best for Debugging >> > #log_level.org.apache.http=DEBUG >> > @@ -320,6 +320,13 @@ log_level.jorphan=INFO >> > #log_level.org.apache.http.client=DEBUG >> > >> > >> #--------------------------------------------------------------------------- >> > +# Apache HttpComponents HTTPClient configuration (HTTPClient4) >> > >> +#--------------------------------------------------------------------------- >> > + >> > +# Number of retries to attempt (default 0) >> > +#httpclient4.retrycount=0 >> > + >> > >> +#--------------------------------------------------------------------------- >> > # Results file configuration >> > >> #--------------------------------------------------------------------------- >> > >> > >> > Modified: >> jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java >> > URL: >> http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java?rev=1164186&r1=1164185&r2=1164186&view=diff >> > >> ============================================================================== >> > --- >> jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java >> (original) >> > +++ >> jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java >> Thu Sep 1 17:52:41 2011 >> > @@ -50,6 +50,7 @@ import org.apache.http.auth.NTCredential >> > import org.apache.http.auth.UsernamePasswordCredentials; >> > import org.apache.http.client.CredentialsProvider; >> > import org.apache.http.client.HttpClient; >> > +import org.apache.http.client.HttpRequestRetryHandler; >> > import org.apache.http.client.entity.UrlEncodedFormEntity; >> > import org.apache.http.client.methods.HttpDelete; >> > import org.apache.http.client.methods.HttpGet; >> > @@ -74,6 +75,7 @@ import org.apache.http.entity.mime.conte >> > import org.apache.http.entity.mime.content.StringBody; >> > import org.apache.http.impl.client.AbstractHttpClient; >> > import org.apache.http.impl.client.DefaultHttpClient; >> > +import org.apache.http.impl.client.DefaultHttpRequestRetryHandler; >> > import org.apache.http.message.BasicNameValuePair; >> > import org.apache.http.params.BasicHttpParams; >> > import org.apache.http.params.CoreConnectionPNames; >> > @@ -109,6 +111,9 @@ public class HTTPHC4Impl extends HTTPHCA >> > >> > private static final Logger log = >> LoggingManager.getLoggerForClass(); >> > >> > + /** retry count to be used; defaults to 0 = disable retries */ >> > + private static final int RETRY_COUNT = >> JMeterUtils.getPropDefault("httpclient4.retrycount", 0); >> > + >> > private static final String CONTEXT_METRICS = "jmeter_metrics"; // >> TODO hack, to be removed later >> > >> > private static final HttpResponseInterceptor METRICS_SAVER = new >> HttpResponseInterceptor(){ >> > @@ -447,7 +452,12 @@ public class HTTPHC4Impl extends HTTPHCA >> > >> > HttpParams clientParams = new DefaultedHttpParams(new >> BasicHttpParams(), DEFAULT_HTTP_PARAMS); >> > >> > - httpClient = new DefaultHttpClient(clientParams); >> > + httpClient = new DefaultHttpClient(clientParams){ >> > + @Override >> > + protected HttpRequestRetryHandler >> createHttpRequestRetryHandler() { >> > + return new >> DefaultHttpRequestRetryHandler(RETRY_COUNT, false); // set retry count >> > + } >> > + }; >> > ((AbstractHttpClient) >> httpClient).addResponseInterceptor(new ResponseContentEncoding()); >> > ((AbstractHttpClient) >> httpClient).addResponseInterceptor(METRICS_SAVER); // HACK >> > >> > >> > Modified: jakarta/jmeter/trunk/xdocs/changes.xml >> > URL: >> http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=1164186&r1=1164185&r2=1164186&view=diff >> > >> ============================================================================== >> > --- jakarta/jmeter/trunk/xdocs/changes.xml (original) >> > +++ jakarta/jmeter/trunk/xdocs/changes.xml Thu Sep 1 17:52:41 2011 >> > @@ -60,6 +60,9 @@ To override the default local language f >> > <h2>Incompatible changes</h2> >> > >> > <p> >> > +The HttpClient4 sampler as implemented in version 2.5 used a retry >> count of 3. >> > +As this can hide server errors, JMeter now sets the retry count to 0 to >> prevent any automatic retries. >> > +This can be overridden by setting the JMeter property >> <b>httpclient4.retrycount</b>. >> > </p> >> > >> > <h2>Bug fixes</h2> >> > @@ -67,6 +70,7 @@ To override the default local language f >> > <h3>HTTP Samplers and Proxy</h3> >> > <ul> >> > <li>Bug 51750 - Retrieve all embedded resources doesn't follow >> IFRAME</li> >> > +<li>Change the default so the HttpClient 4 sampler does not retry</li> >> > </ul> >> > >> > <h3>Other Samplers</h3> >> > >> > Modified: jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml >> > URL: >> http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=1164186&r1=1164185&r2=1164186&view=diff >> > >> ============================================================================== >> > --- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml >> (original) >> > +++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Thu >> Sep 1 17:52:41 2011 >> > @@ -93,7 +93,7 @@ Latency is set to the time it takes to l >> > <li>applets</li> >> > <li>stylesheets</li> >> > <li>external scripts</li> >> > - <li>frames</li> >> > + <li>frames, iframes</li> >> > <li>background images (body, table, TD, TR)</li> >> > <li>background sound</li> >> > </ul> >> > @@ -353,6 +353,12 @@ Optional properties to allow change the >> > <note>Versions of JMeter before 2.5 returns only data response size >> (uncompressed if request uses gzip/defate mode). >> > <br></br>To return to settings before version 2.5, set the two >> properties to false.</note> >> > </p> >> > +<p> >> > +<b>Retry handling</b><br></br> >> > +In version 2.5 of JMeter, the HttpClient4 sampler used the default >> retry count, which was 3. >> > +As this can hide server errors, JMeter now sets the retry count to 0 to >> prevent any automatic retries. >> > +This can be overridden by setting the JMeter property >> <b>httpclient4.retrycount</b>. >> > +</p> >> > <links> >> > <link href="test_plan.html#assertions">Assertion</link> >> > <link href="build-web-test-plan.html">Building a Web Test >> Plan</link> >> > >> > >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: notifications-unsubscr...@jakarta.apache.org >> > For additional commands, e-mail: notifications-h...@jakarta.apache.org >> > >> > >> > >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@jakarta.apache.org >> For additional commands, e-mail: dev-h...@jakarta.apache.org >> >> > > > -- > Cordialement. > Philippe Mouawad. > Ubik-Ingénierie > > > > -- Cordialement. Philippe Mouawad. Ubik-Ingénierie