https://issues.apache.org/bugzilla/show_bug.cgi?id=54902

            Bug ID: 54902
           Summary: Constant throughput timer exceeds the defined rate in
                    case of 'Connection reset'.
           Product: JMeter
           Version: 2.9
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: major
          Priority: P2
         Component: Main
          Assignee: [email protected]
          Reporter: [email protected]
    Classification: Unclassified

DESCRIPTION:

I'm runninn the attached 'test.jmx' file as follows:
--------------
jmeter -p jmeter.properties  -Jsummariser.name=summary -Jsummariser.interval=5
-Jsummariser.log=true -Jsummariser.out=false
-Dsun.net.http.allowRestrictedHeaders=true -n -t test.jmx
--------------
The 'jmeter.properties' file is also attached.

The test plan has two thread groups each with one sampler and one constant
throughput timer.
One thread group has the the constant throughput timer set to 300 (5 req/sec).
And runs from t0-t120 (120 secs duration).
The other thread group has the the constant throughput timer set to 1500 (25
req/sec).  And runs from t120-t240 (120 secs duration after 120 secs delay).
The test is executed against a server that rate limits all traffic that exceds
5 req/sec. beyond 5 req/sec the requests are droped with a TCP RST.

Looking at Jmeter log summary, it seems that Jmeter did just what it was told
to do (25.0/s Avg) and (5.0/s Avg) - 
--------------
2013/04/26 18:36:14 INFO  - jmeter.reporters.Summariser: /dos1.php-2 =  3006 in
120.1s =   25.0/s Avg:     9 Min:     0 Max:    20 Err:   969 (32.24%) 
2013/04/26 18:36:14 INFO  - jmeter.reporters.Summariser: /dos1.php-1 =   608 in
120.8s =    5.0/s Avg:    13 Min:    13 Max:    17 Err:     0 (0.00%) 
2013/04/26 18:36:14 INFO  - jmeter.engine.StandardJMeterEngine: Test has ended 
--------------

However, recording a tcpdump of the traffic that is generated by Jmeter shows
otherwise.
The mentioned tcpdump recorded as follows on the target server: tcpdump -i any
-s0 -w /shared/tmp/my.pcap
The mentioned tcpdump is then filtered out (in wireshark) as follows: ip.src ==
jmeter_machine_ip and ip.dst == server_ip and tcp.flags.push == 1

Looking at the tcpdump shows that - 
--------------
The execution of the first thread goes as designed: 5 req/sec are generated by
Jmeter  and all traffic goes through.
The execution of the second thread goes bad: ~50(+/-) req/sec are generated by
Jmeter. Instead of the defined 25 req/sec.
--------------

So, there are actually two bugs here - when connections are getting reset:
1) Jmeter exceeds the defined (via 'Constant throughput timer') traffic rate. 
2) provides a wrong thread summary in log.

STEPS TO REPRODUCE:

1) Configure 'Constant throughput timer' to  1500 (25 req/sec).
2) Start a tcpdump recording
3) Run the test with an available back-end server (no connection resets) - see
(via tcpdump) that Jmeter sends 25 req/sec.
4) Shut down the back end server
3) Run the test (there are connection resets) - see (via tcpdump) that Jmeter
exceeds the rate of 25 req/sec by far.
4) Look into the Jmeter log - the summary provides data that differs from the
tcpdump data.

SETUP DETAILS:

$ java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.10) (rhel-1.28.1.10.10.el5_8-i386)
OpenJDK Server VM (build 20.0-b11, mixed mode)

$ cat /etc/redhat-release 
CentOS release 5.8 (Final)

$ ./jmeter -v
log_file=jmeter.log java.io.FileNotFoundException: jmeter.log (Permission
denied)
[log_file-> System.out]
2013/04/29 12:56:02 INFO  - jmeter.util.JMeterUtils: Setting Locale to en_US 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: Loading user properties from:
/usr/apache-jmeter-2.9/bin/user.properties 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: Loading system properties from:
/usr/apache-jmeter-2.9/bin/system.properties 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: Copyright (c) 1998-2013 The Apache
Software Foundation 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: Version 2.9 r1437961 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: java.version=1.6.0_22 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: java.vm.name=OpenJDK Server VM 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: os.name=Linux 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: os.arch=i386 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: os.version=2.6.18-238.el5xen 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: file.encoding=ANSI_X3.4-1968 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: Default Locale=English (United
States) 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: JMeter  Locale=English (United
States) 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: JMeterHome=/usr/apache-jmeter-2.9 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: user.dir 
=/usr/apache-jmeter-2.9/bin 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: PWD      
=/usr/apache-jmeter-2.9/bin 
2013/04/29 12:56:02 INFO  - jmeter.JMeter: IP: 10.10.10.107 Name:
tlv-sigurko-xen-centos-clean.xxx.com FullName:
tlv-sigurko-xen-centos-clean.xxx.com 
Copyright (c) 1998-2013 The Apache Software Foundation
Version 2.9 r1437961

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

Reply via email to