jmeter-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Mouawad <philippe.moua...@gmail.com>
Subject Re: JMeter 3.1 httpclient4.retrycount does not work
Date Wed, 08 Mar 2017 19:53:56 GMT
Hello Tuukka,

In my recent tests I didn't face any issue with httpclient4.retrycount.
For me it works  but be aware that JMeter (HC4) does not retry all
requests, it only retries those it is allowed to :
- Idempotent HTTP methods which are by default those that do not implement
HttpEntityEnclosingRequest, so not POST, PUT,DELETE, PATCH, GET With body
(<= That might be a bug thinking more about it)
- Non retriable exceptions (InterruptedIOException.class,
UnknownHostException.class, ConnectException.class,  SSLException.class)
- + Some other reasons

See:
https://github.com/apache/httpclient/blob/4.5.x/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpRequestRetryHandler.java#L129


Regards
Philippe


On Wed, Mar 8, 2017 at 2:14 PM, Tuukka Mustonen <tuukka.mustonen@gmail.com>
wrote:

> My problem is that AWS Application Load Balancer (ALB) terminates all
> existing connections during configuration changes (including auto-scaling).
> As my perf tests trigger auto-scaling, I want to retry failed requests that
> ALB connection termination causes.
>
> This results in a bunch of NoHttpResponseException whenever scaling occurs
> (=when ALB terminates existing connections).
>
> (And yeah, this load balancer behavior is weird and ugly but it's what they
> confirmed).
>
> Using HttpClient 4, In user.properties I have set:
>
> httpclient4.retrycount=1
>
> But that does nothing. I even tried:
>
> httpclient4.retrycount=100000000
>
> But zero effect.
>
> Switching to HttpClient 3.1 reproduces the problem. However, with
> HttpClient 3 and:
>
> httpclient3.retrycount=1
>
> The problem vanishes so I assume retrying then works.
>
> I couldn't find where retry-attempts are logged so I have no "proof" that
> HttpClient 4 wouldn't actually retry, but a) retrycount makes difference on
> HttpClient 3.1 but not on 4 b) I would assume my whole process should crash
> with retrycount=100000000 if it was really applied.
>
> Related question: is http.connection.stalecheck$Boolean=false (in
> hc.parameters file) valid anymore on JMeter 3.x with improved retry/stale
> logic (and httpclient4.validate_after_inactivity)? The line is still there
> in bundled hc.parameters file...
>
> Tested on JMeter 3.1.
>
> Any open (or already fixed) tickets about this? Couldn't find any...
>
> FYI: to describe better what happens during ALB connection termination:
>
> ...Successful communication with keep-alive...
> - ALB responds to a request, and sends Connection: keep-alive so JMeter
> leaves the connection open
> - JMeter sends a new request
> - ALB may might or might not ack it (not sure if there was pattern)
> - ALB closes connection on TCP level (FIN)
> - Connection gets closed and so sent request failed and needs to be retried
>
> I think this generates NoHttpResponseException in JMeter.
>
> Tuukka
>



-- 
Cordialement.
Philippe Mouawad.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message