Re: svn commit: r1164186 - in /jakarta/jmeter/trunk: bin/jmeter.properties src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java xdocs/changes.xml xdocs/usermanual/component_reference.xml
Philippe Mouawad <[email protected]> Fri, 23 Sep 2011 14:41:43 +0200
| Newsgroups | gmane.comp.jakarta.cactus.devel |
|---|---|
| Message-ID | <CAH9fUpYyW_CxSgXYPQ9khjNnUQXTBfcQWCs0DjJaFDCbRT9W0A@mail.gmail.com> |
Mistake in link: https://issues.apache.org/bugzilla/show_bug.cgi?id=51882 On Fri, Sep 23, 2011 at 2:40 PM, Philippe Mouawad < [email protected]> wrote: > Done: > https://issues.apache.org/bugzilla/attachment.cgi?bugid=51882 > Regards > Philippe > > > On Fri, Sep 23, 2011 at 2:34 PM, sebb <[email protected]> wrote: > >> On 23 September 2011 13:29, Philippe Mouawad <[email protected]> >> wrote: >> > 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 ? >> >> Would be useful, thanks. >> >> > Regards >> > Philippe >> > >> > >> > On Fri, Sep 23, 2011 at 2:23 PM, Philippe Mouawad < >> > [email protected]> 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 <[email protected]> >> 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, [email protected] 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: >> [email protected] >> >>> > For additional commands, e-mail: >> [email protected] >> >>> > >> >>> > >> >>> > >> >>> >> >>> >> >>> --------------------------------------------------------------------- >> >>> To unsubscribe, e-mail: [email protected] >> >>> For additional commands, e-mail: [email protected] >> >>> >> >>> >> >> >> >> >> >> -- >> >> Cordialement. >> >> Philippe Mouawad. >> >> Ubik-Ingénierie >> >> >> >> >> >> >> >> >> > >> > >> > -- >> > Cordialement. >> > Philippe Mouawad. >> > Ubik-Ingénierie >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > > -- > Cordialement. > Philippe Mouawad. > Ubik-Ingénierie > > > > -- Cordialement. Philippe Mouawad. Ubik-Ingénierie