5

I get an error when using jmeter with one master and one remote node. I did this steps:

  • Java & JMeter versions are the same (whith JMeter plugins)
  • I started the JMeter Server in the remote node
  • I added the remote node IP to the properties file of the master
  • I startet JMeter on the master and started the test script via remote start (the command line of the master contains "Using remote object …" with the correct IP

After that JMeter freezes and after 7 minutes I get the error Message "Engine is busy - please try later".

The Log of the master is:

2014/05/06 14:17:33 INFO  - jmeter.gui.action.RemoteStart: Initialising remote engine: 172.19.147.41 
2014/05/06 14:17:33 INFO  - jmeter.engine.ClientJMeterEngine: running clientengine run method 
2014/05/06 14:17:33 INFO  - jmeter.samplers.SampleEvent: List of sample_variables: [] 
2014/05/06 14:17:33 INFO  - jmeter.samplers.BatchSampleSender: Using batching (client settings) for this run. Thresholds: num=100, time=60000 
2014/05/06 14:17:33 INFO  - jmeter.samplers.DataStrippingSampleSender: Using DataStrippingSampleSender for this run 
2014/05/06 14:17:33 INFO  - jmeter.samplers.BatchSampleSender: Using batching (client settings) for this run. Thresholds: num=100, time=60000 
2014/05/06 14:17:33 INFO  - jmeter.samplers.DataStrippingSampleSender: Using DataStrippingSampleSender for this run 
2014/05/06 14:25:50 ERROR - jmeter.engine.ClientJMeterEngine: Error in rconfigure() method java.lang.IllegalStateException: Engine is busy - please try later 
2014/05/06 14:25:50 INFO  - jmeter.engine.ClientJMeterEngine: Interrupting RMI Reaper 

The log of the remote node:

2014/05/06 14:17:33 INFO  - jmeter.samplers.BatchSampleSender: Using batching for this run. Thresholds: num=100, time=60000 
2014/05/06 14:17:33 INFO  - jmeter.samplers.DataStrippingSampleSender: Using DataStrippingSampleSender for this run 
2014/05/06 14:17:33 INFO  - jmeter.samplers.BatchSampleSender: Using batching for this run. Thresholds: num=100, time=60000 
2014/05/06 14:17:33 INFO  - jmeter.samplers.DataStrippingSampleSender: Using DataStrippingSampleSender for this run 
2014/05/06 14:25:50 INFO  - jmeter.engine.RemoteJMeterEngineImpl: Creating JMeter engine on host 172.19.147.41 base '.' 
2014/05/06 14:25:50 INFO  - jmeter.engine.RemoteJMeterEngineImpl: Remote client host: 172.19.147.38
2014/05/06 14:25:50 WARN  - jmeter.engine.RemoteJMeterEngineImpl: Engine is busy - cannot create JMeter engine

Did I forget to add some configuration or where is the problem?

Thanke in regards...

SLo
  • 75
  • 1
  • 1
  • 10
  • I'm getting something similar. Running GUI with a single remote; the remote says 'starting the test...', but the GUI gets no feedback at all, and after a delay, I get the same "Engine is busy" error. Eventually the remote finishes the test with no other errors, but still no feedback. – Synchro Aug 26 '14 at 12:16

4 Answers4

3

This error is because of the slaves are still executing previous test plan.

i would suggest.

  1. while stopping the jmeter tests , use 'Remote Stop all' option from master, which kills the running threads on remote/slave machine process.

2.Restart[relaunch the "jmeter-server.bat"] on the slave/remote jmeter process and start the test.

Ashoka
  • 187
  • 3
  • 14
3

Your problem is that the runners(slaves) are still running the test from your first start command even though you tried to end the test. Previous answers on Stack did not work for me in solving this problem so here's my solution:

On every runner(slave) do the following:
1. kill -9 `pidof java` This will kill all Java processes so be careful if running other applications.

2.cd into apache-jmeter/bin directory and type ./jmeter-server & This will restart your runners(slaves) as jmeter-servers so they are ready to receive communication from the master.

Then you should be able to successfully restart your test from master.

Jake Zidow
  • 513
  • 1
  • 5
  • 9
1

IN your case , it seems you triggered the test from master twice. So the message is saying to you, a test is currently running on slave , cannot start a new one.

How do you start test from controller ? and how do you start jmeter-server from slave node ?

UBIK LOAD PACK
  • 33,980
  • 5
  • 71
  • 116
  • I started the test with Run -> Remote Start -> IP of the remote node. So the client shouldn't run the test. I started the server with "jmeter-server.bat" with using a proxy. – SLo May 07 '14 at 10:02
  • Do you still reproduce issue every time ? If so try laucnhing test using non gui mode which is by the way a best practice. GUI mode is only for Test Plan debuging not load testing. – UBIK LOAD PACK May 07 '14 at 16:58
1
Error in NonGUIDriver java.lang.IllegalStateException: Engine is busy - please try later

This error occurs while running JMeter in non-GUI mode. JmeterApacheJMeter.jar process aborts on master without sending STOP signal to slaves to specify the test status.

Perform steps below to fix the issue on Slave machines:

Step#1 : Kill any running JMeter-server agent process on JMeter Slave/s

    ps ax | grep "ApacheJMeter.jar" | awk '{print $1}' | xargs kill 

Step#2 : Start JMeter-server process on Slave/s

    cd apache-jmeter-folder/bin/; ./jmeter-server & 

Now resume your performance test on JMeter master.

VNaik
  • 48
  • 4