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
sebb <[email protected]> Fri, 23 Sep 2011 13:34:07 +0100
| Newsgroups | gmane.comp.jakarta.cactus.devel |
|---|---|
| Message-ID | <CAOGo0VbjhuQHmOVkyde-Xqq6jbFpMETjDjeECyUMrYy_01PUxw@mail.gmail.com> |
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 >