You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@jmeter.apache.org by bu...@apache.org on 2019/08/20 10:54:15 UTC

[Bug 63674] New: No difference between mode=DiskStore vs StrippedDiskStore

https://bz.apache.org/bugzilla/show_bug.cgi?id=63674

            Bug ID: 63674
           Summary: No difference between mode=DiskStore vs
                    StrippedDiskStore
           Product: JMeter
           Version: 5.1.1
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Main
          Assignee: issues@jmeter.apache.org
          Reporter: pierre.astruc@evertest.com
  Target Milestone: JMETER_5.2

Hello jmeter team !

I'm currently running Jmeter 5.1.1 and I have found something strange with
remote batching.

When using mode=DiskStore or mode=StrippedDiskStore, I can't find any
difference in term of temp disk usage or network used to transmit data to
master at the end of the test.

The goal of StrippedDiskStore is to strip response data from serialized flow no
?
So it just don't work.
- Remote jmeter server temp files have the same size
/tmp/SerialisedSampleSender119928309885821559.ser
- Remote jmeter server temp files have response data
- At the end of the test, total data sent to the master use the same mbit rate
during the same time.

The bug is really easy to reproduce :)
Have a try, and tell me !
Cheers

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 63674] "DataStrippingSampleSender" doesn't work with "Retrieve All Embedded Resouces"

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63674

pierre.astruc@evertest.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |major
            Summary|No difference between       |"DataStrippingSampleSender"
                   |mode=DiskStore vs           |doesn't work with "Retrieve
                   |StrippedDiskStore           |All Embedded Resouces"

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 63674] "DataStrippingSampleSender" doesn't work with "Retrieve All Embedded Resouces"

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63674

Felix Schumacher <fe...@internetallee.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |PatchAvailable
                 OS|Linux                       |All
           Hardware|PC                          |All

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 63674] "DataStrippingSampleSender" doesn't work with "Retrieve All Embedded Resouces"

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63674

--- Comment #3 from pierre.astruc@evertest.com ---
Created attachment 36726
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=36726&action=edit
jmeter.properties of master jmeter

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 63674] "DataStrippingSampleSender" doesn't work with "Retrieve All Embedded Resouces"

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63674

pierre.astruc@evertest.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |NEW

--- Comment #5 from pierre.astruc@evertest.com ---
Hello Felix,
Thanks for the quick reply :)

Okay here is my setup, let's hope you will be able to reproduce the bug :)

1 - Start one slave with jmeter 5.1.1 in CLI, started with ./jmeter-server and
with only 2 modifications in jmeter.properties
httpclient4.retrycount=1
httpsampler.ignore_failed_embedded_resources=true

2 - Start one master with jmeter 5.1.1 in GUI, started with ./jmeter and with
only 4 modifications in jmeter.properties (attachment provided)
httpclient4.retrycount=1
httpsampler.ignore_failed_embedded_resources=true
remote_hosts=stress06
mode=DiskStore

3 - Open the "SimpleTest.jmx" on GUI and remote run it to your slave node
(stress06 here)
It's one 60 seconds test plan with two step.

Test1: ok
- mode=DiskStore
- [Uncheck] "retrieve all embedded resources" into advanced tab of "http
request defaults"
- result:
-- one 55000 KB file is generated in /tmp/SerialisedSampleSender*.ser
-- this file contain response data of main requests (<!DOCTYPE
html><html><head>...) -> this behaviour is normal :)

Test2: ok
- mode=StrippedDiskStore
- [Uncheck] "retrieve all embedded resources" into advanced tab of "http
request defaults"
- result:
-- one 320 KB file is generated in /tmp/SerialisedSampleSender*.ser
-- this file doesn't contain any response data -> this behaviour is normal
thanks to Stripped :)

Test3: ok
- mode=DiskStore
- [Check] "retrieve all embedded resources" into advanced tab of "http request
defaults"
- result:
-- one 187000 KB file is generated in /tmp/SerialisedSampleSender*.ser
-- this file contain response data of main (<!DOCTYPE html><html><head>...) and
embedded requests (...<FF><EE>^@^NAdobe^@d<C0>...) -> this behaviour is normal
:)

Test4: bug
- mode=StrippedDiskStore
- [Check] "retrieve all embedded resources" into advanced tab of "http request
defaults"
- result:
-- one 187000 KB file is generated in /tmp/SerialisedSampleSender*.ser
-- this file contain response data of main (<!DOCTYPE html><html><head>...) and
embedded requests (...<FF><EE>^@^NAdobe^@d<C0>...) -> Here is the bug, with
StrippedDiskStore, all the responses sample should be dropped, and here we have
response from main + embedded requests

Problem is also present in StrippedBatch, but it should be easier to debug with
StrippedDiskStore :)

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 63674] "DataStrippingSampleSender" doesn't work with "Retrieve All Embedded Resouces"

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63674

--- Comment #8 from pierre.astruc@evertest.com ---
Hello Felix,

Thanks for the quick patch, I will test the nightly build and report :)

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 63674] "DataStrippingSampleSender" doesn't work with "Retrieve All Embedded Resouces"

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63674

--- Comment #1 from pierre.astruc@evertest.com ---
I perform more tests and my conclusion is that the bug is located into the
[Check] Retrieve All Embedded Resources option.

When this option is enabled, the StrippingSampler is not working, and amout of
data transmitted to the master is indeed insane.

Here are my result with the same Test Plan and some jp@gc graph listeners:
This are the MB size transmitted over lan to the jmeter master:

- Without "Retrieve All Embedded Resources"
-- mode=Batch : 583 MB
-- mode=StrippedBatch : 4 MB
-- mode=DiskStore : 547 MB
-- mode=StrippedDiskStore : 48 MB

- With the option "Retrieve All Embedded Resources"
-- mode=Batch : 2090 MB
-- mode=StrippedBatch : 2010 MB
-- mode=DiskStore : 2150 MB
-- mode=StrippedDiskStore : 2160 MB

For me, all the resources automatically retreived with the option are not
Stripped correctly, the problem is the same with Batch or DiskStore mode.
Tested on Jmeter 5.1.1 + Java 8

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 63674] "DataStrippingSampleSender" doesn't work with "Retrieve All Embedded Resouces"

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63674

--- Comment #6 from Felix Schumacher <fe...@internetallee.de> ---
Created attachment 36735
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=36735&action=edit
Strip results hierarchy even deeper

I get an error for at least one of the css files:

2019-08-22 22:30:11,401 WARN c.h.c.r.e.LoggingCSSParseErrorHandler: Browser
compliant mode skipped CSS from [1:36853] starting at token 'progid' until
[1:36940] to token '}' (based on com.he
lger.css.parser.ParseException: Encountered unexpected token: ":" ":"
    at line 1, column 36859.

Was expecting one of:

    "+"
    "-"

That error together with the setting
httpsampler.ignore_failed_embedded_resources=true leads to a deeper hierarchy
of sample results than the stripping logic expects.

The attached patch strips more of the hierarchy and should solve your problems.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 63674] "DataStrippingSampleSender" doesn't work with "Retrieve All Embedded Resouces"

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63674

--- Comment #4 from pierre.astruc@evertest.com ---
Created attachment 36727
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=36727&action=edit
test plan to run without and with "retreive all embedded resources"

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 63674] "DataStrippingSampleSender" doesn't work with "Retrieve All Embedded Resouces"

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63674

--- Comment #10 from Felix Schumacher <fe...@internetallee.de> ---
https://ci.apache.org/projects/jmeter/nightlies/r1461-c1a198fb9ac4d2c9c371f76bbe09ddd1bb3a8a69/apache-jmeter-5.2.0-SNAPSHOT.zip

Should be a valid link. The script generating the index has not survived the
git/gradle migration, yet. I will correct it.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 63674] "DataStrippingSampleSender" doesn't work with "Retrieve All Embedded Resouces"

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63674

Felix Schumacher <fe...@internetallee.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |NEEDINFO

--- Comment #2 from Felix Schumacher <fe...@internetallee.de> ---
Can you give more information about:
 * the plan you are using (it would be best to have a minimal test, that we
could use)
 * where you specified the mode and how
 * where the results failures or normal responses

I have tried to reproduce it and in my setup (setting the mode on the
controlling server) it worked and the controlled node saved the headers only.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 63674] "DataStrippingSampleSender" doesn't work with "Retrieve All Embedded Resouces"

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63674

pierre.astruc@evertest.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|NEEDINFO                    |RESOLVED

--- Comment #11 from pierre.astruc@evertest.com ---
Thanks for the link :)

I test again and the bug is fixed !
Well done, and a big thanks for this enhancement :)

Test1:
- mode = DiskStore / Batch
- [Uncheck] "retrieve all embedded resources"
---- result ----
-- one 55000 KB file is generated in /tmp/SerialisedSampleSender*.ser
-- this file contain response data of main requests (<!DOCTYPE
html><html><head>...) : ok
-- network usage between slave and master = 60500 KB / 55500 KB : ok

Test2:
- mode = StrippedDiskStore / StrippedBatch
- [Uncheck] "retrieve all embedded resources"
---- result ----
-- one 324 KB file is generated in /tmp/SerialisedSampleSender*.ser
-- this file doesn't contain any response data : ok
-- network usage between slave and master = 4140 KB / 37 KB : ok

Test3:
- mode = DiskStore / Batch
- [Check] "retrieve all embedded resources"
---- result ----
-- one 186000 KB file is generated in /tmp/SerialisedSampleSender*.ser
-- this file contain response data of main (<!DOCTYPE html><html><head>...) and
embedded requests (...<FF><EE>^@^NAdobe^@d<C0>...) : ok
-- network usage between slave and master =  196000 KB / 190000 KB : ok

Test4:
- mode = StrippedDiskStore / StrippedBatch
- [Check] "retrieve all embedded resources"
---- result ----
-- one 3400 KB file is generated in /tmp/SerialisedSampleSender*.ser
-- this file doesn't contain any response data : ok
-- network usage between slave and master =  8650 KB /  5620 KB : ok

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 63674] "DataStrippingSampleSender" doesn't work with "Retrieve All Embedded Resouces"

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63674

--- Comment #9 from pierre.astruc@evertest.com ---
Hello, it seems that I can not download any nightly build (404 everywhere)
https://jmeter.apache.org/nightly.html

May I ask you a recent build in .zip archive ?
Thanks !

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 63674] "DataStrippingSampleSender" doesn't work with "Retrieve All Embedded Resouces"

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=63674

Felix Schumacher <fe...@internetallee.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |FixedInTrunk
             Status|NEW                         |NEEDINFO

--- Comment #7 from Felix Schumacher <fe...@internetallee.de> ---
@Pierre, can you test next nightly, if this fixes your problems?

commit 84fbdbbf96704e00c9e6c905c4833c7e7006b2d0
AuthorDate: Sat Aug 24 17:14:20 2019 +0200

    Strip results with subresults deeper in their hierarchy when DataStripping
is enabled

    SampleResults will now be stripped recursively up to a level of four when
DataStripping is enabled.

    As Sonar nagged to widen the scope for readResolve to better support
inheritance and it made testing
    possible, readResolve is now protected instead of private.

    Bugzilla Id: 63674
---
 .../jmeter/samplers/DataStrippingSampleSender.java |  21 ++--
 .../samplers/TestDataStrippingSampleSender.java    | 130 +++++++++++++++++++++
 xdocs/changes.xml                                  |   2 +
 3 files changed, 146 insertions(+), 7 deletions(-)

-- 
You are receiving this mail because:
You are the assignee for the bug.