2
votes

I am using JMeter 2.11. The following parameters are defined in the jmeter.bat file :

set HEAP=-Xms512m -Xmx12144m

set PERM=-XX:PermSize=64m -XX:MaxPermSize=64m

I run my scenario in batch mode with 50 users. It appears some threads are blocked during 20 min or 1 hour and run again after. For example, we have the following with the unit group 6:

<httpSample t="13" lt="13" ts="1410856270124" s="true" lb="/hopex/service.aspx?data=generationType-standard|generator-E98AEA3A4F717715" rc="200" rm="OK" tn="Groupe d'unités 1-6" dt="text" by="412">
  <java.net.URL>http://172.16.1.23/hopex/service.aspx?data=generationType-standard|generator-E98AEA3A4F717715</java.net.URL>
</httpSample>

**executed at 16/09/2014 10:31:10**


<httpSample t="0" lt="0" ts="1410856270138" s="true" lb="/hopex/statesessionprovider.aspx" rc="200" rm="OK" tn="Groupe d'unités 1-6" dt="text" by="238">
  <java.net.URL>http://172.16.1.23/hopex/statesessionprovider.aspx</java.net.URL>
</httpSample>

**executed at 16/09/2014 10:31:10**



<sample t="0" lt="0" ts="1410856274818" s="true" lb="Timer between steps" rc="200" rm="OK" tn="Groupe d'unités 1-6" dt="text" by="1478"/>

**executed at 16/09/2014 10:31:15**


<httpSample t="3" lt="3" ts="1410860493293" s="false" lb="/Hopex/service.aspx?data=generationType-standard|generator-E98AEA3A4F717715" rc="500" rm="Internal Server Error" tn="Groupe d'unités 1-6" dt="text" by="298">
  <java.net.URL>http://172.16.1.23/Hopex/service.aspx?data=generationType-standard|generator-E98AEA3A4F717715</java.net.URL>
</httpSample>

**executed at 16/09/2014 11:41:33**

It appears the timers are executed at 10H31 and the next request is sent at 11H41, that is to say 1H10 after the timers. Our server application log shows that the last request has never been handled because of IIS web application session timeout. So it means JMeter made a pause of more than one hour before sending the request. It should be noted that if we remove the JMeter while statement from our scenario, it works.

I retrieve this information from JMeter logs. It seems the problem comes from JMeter with stack overflow.

2014/09/16 10:30:49 WARN  - jmeter.control.GenericController: StackOverflowError detected 
2014/09/16 10:30:49 WARN  - jmeter.control.GenericController: StackOverflowError detected 
2014/09/16 10:30:49 WARN  - jmeter.control.GenericController: StackOverflowError detected 
2014/09/16 10:30:51 WARN  - jmeter.control.GenericController: StackOverflowError detected 
2014/09/16 10:31:00 INFO  - jmeter.reporters.Summariser: summary +    196 in    30s =    6.5/s Avg:   154 Min:     0 Max: 11347 Err:     0 (0.00%) Active: 50 Started: 50 Finished: 0 
2014/09/16 10:31:00 INFO  - jmeter.reporters.Summariser: summary =   5974 in  1103s =    5.4/s Avg:   406 Min:     0 Max: 47864 Err:     0 (0.00%) 
2014/09/16 10:31:01 WARN  - jmeter.control.GenericController: StackOverflowError detected 
2014/09/16 10:31:32 INFO  - jmeter.reporters.Summariser: summary +    154 in    32s =    4.9/s Avg:    94 Min:     0 Max: 10982 Err:     0 (0.00%) Active: 50 Started: 50 Finished: 0 
2014/09/16 10:31:32 INFO  - jmeter.reporters.Summariser: summary =   6128 in  1135s =    5.4/s Avg:   399 Min:     0 Max: 47864 Err:     0 (0.00%) 
2014/09/16 10:31:37 WARN  - jmeter.control.GenericController: StackOverflowError detected 

I tried to change JMeter.bat parameters using -XSS but we had side effects. I also ran the test with those parameters:

set HEAP=-Xms512m -Xmx12144m 
set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m 
set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50% 
set TENURING=-XX:MaxTenuringThreshold=2 
set RMIGC=-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000 
set PERM=-XX:PermSize=64m -XX:MaxPermSize=64m

Nothing change, the same problem applies. Does anyone has an idea of how to remove those JMeter errors ? This is quite blocking for us since it means JMeter could not handle correctly 50 users simultaneously...

Regards

Sylvie

4

4 Answers

3
votes

Issue was due to a know bug in version 2.11 :

Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see Bug 52496 ). A workaround is to add a sampler at the same level as (or superior to) the If Controller. For example a Test Action sampler with 0 wait time (which doesn't generate a sample), or a Debug Sampler with all fields set to False (to reduce the sample size).

Also opened as:

This bug is now fixed so will be available as 2.12

0
votes

2014/09/16 10:31:37 WARN - jmeter.control.GenericController: StackOverflowError detected

This error can appear when there is a logical error in your test plan. Please check carefully with adding beanshell listener for printing extra logs within Logical controller such as looping/iterating controller in your test plan.

0
votes

I believe that in the "set HEAP=-Xms512m -Xmx12144m " both values need to be the same. I think that if you would try with "set HEAP=-Xms2048m -Xmx2048m " the error will be gone.

0
votes

Just increase jmeter stack size by using -Xss option