jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Mouawad <philippe.moua...@gmail.com>
Subject Re: Regression in JMeter 3.0 : Compressed response break keepalive
Date Wed, 11 May 2016 20:47:39 GMT
On Wed, May 11, 2016 at 10:44 PM, sebb <sebbaz@gmail.com> wrote:

> On 11 May 2016 at 21:30, Philippe Mouawad <p.mouawad@ubik-ingenierie.com>
> wrote:
> > Hello,
> > We have an issue in current 3.0 rc4 as seen by Rainer :
> > - https://issues.apache.org/jira/browse/HTTPCLIENT-1742
> >
> > The issue is due to a behavioral change in HttpClient 4.5.2 vs
> > httpclient-4.2.6:
> >
> >    - ResponseContentEncoding removes 3 headers from Response :
> >    Content-Encoding, Content-Length, Content-MD5
> >    - JMeter uses DefaultRequestDirector which is replaced by
> MainClientExec
> >
> >
> > Now here is what happens:
> >
> > At this line, PostProcessor run , leading to removal of 3 headers
> >
> >    -
> >
> https://github.com/apache/httpclient/blob/4.5.x/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRequestDirector.java#L496
> >
> > At the next line, keepAlive management is run, but it's too late as
> headers
> > have been removed:
> >
> >    -
> >
> https://github.com/apache/httpclient/blob/4.5.x/httpclient/src/main/java-deprecated/org/apache/http/impl/client/DefaultRequestDirector.java#L500
> >
> >
> > While in new HC Class ProtocolExec:
> >
> > The keepAlive is managed in this
> >
> >
> https://github.com/apache/httpclient/blob/4.5.x/httpclient/src/main/java/org/apache/http/impl/execchain/ProtocolExec.java#L184
> >
> > Which calls this:
> >
> >
> https://github.com/apache/httpclient/blob/4.5.x/httpclient/src/main/java/org/apache/http/impl/execchain/MainClientExec.java#L274
> >
> > And Compression is managed afterwards in :
> >
> >
> https://github.com/apache/httpclient/blob/4.5.x/httpclient/src/main/java/org/apache/http/impl/execchain/ProtocolExec.java#L189
> >
> >
> > So no issue in HC4.5.2, but in JMeter. I think it's unfortunately a
> stopper
> > for the release.
> >
> > Breaking KeepAlive is a big issue
>
> However it only occurs if compression is used.
>

Unfortunately nowadays, I don't see many applications that don't.


>
> It occurs to me that a much simpler way to restore the headers would
> be to save them, call the parent method, then restore them.
>
Yes, but I am just concerned about the change in order of headers. Can't it
break some Hash that would be made on them.



> No need to mess around with using the context.
>

Another option is to have an override of ResponseContentEncoding that does
not remove these headers.


> Basically that would revert the change made to HC4.5.
>



>
> This would be a quicker fix than updating the code to use
> non-deprecated methods.
> Though we do need to get started on that soon.
>
Agreed

>
> > --
> > Regards.
> > Philippe
>



-- 
Cordialement.
Philippe Mouawad.

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