You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by sasidharsmit <sa...@gmail.com> on 2011/08/03 10:50:40 UTC

Issues with JMeter Master-Slave configuration

Dear All,
I have a JMeter test which runs fine when I execute it from the localhost.
But, when I try to execute the same test in a remote machine (via
Master-Slave configuration), I get the exception shown at the end of this
post.

This is not the first time I'm facing this issue. I have faced this before
and resolved it as well. 
So, I tried the following before posting this:

1. Execute a different test remotely - Works without any problem
2. Check all the CSV config files are available in the /bin path of my
remote machine - All available
3. Check if the mandatory fields in the test are filled (like the delimiter
field in CSV config) - They are filled. If not the test would not have run
even in localhost
4. Check if there is any space in the path in which I store my scripts and
data and the JMeter executables - There are "_", "." and "-" but no spaces
5. Check if the ./jmeter-server is started properly in the remote linux
machine - It is started properly and I get the below message:
*/$ ./jmeter-server
Created remote object: UnicastServerRef [liveRef:
[endpoint:[<ip>:<port>](local),objID:[<some numbers>:<some numbers>]]]/*

Is there anything else I need to check? Can any one help me?

My localhost is a Windows7 machine and the remote machine is a linux
machine.

The exception I'm facing can be found below:

*/
2011/08/03 10:33:15 INFO  - jmeter.engine.ClientJMeterEngine: about to run
remote test on <remote ip>
2011/08/03 10:33:15 INFO  - jmeter.engine.ClientJMeterEngine: done
initiating run command
2011/08/03 10:33:15 INFO  - jmeter.engine.ClientJMeterEngine: running
clientengine run method
2011/08/03 10:33:15 INFO  - jmeter.engine.ConvertListeners: num threads = 14
2011/08/03 10:33:15 INFO  - jmeter.samplers.StandardSampleSender: Using
Standard Remote Sampler for this test run
2011/08/03 10:33:15 INFO  - jmeter.samplers.StandardSampleSender: Using
Standard Remote Sampler for this test run
2011/08/03 10:33:15 INFO  - jmeter.samplers.StandardSampleSender: Using
Standard Remote Sampler for this test run
2011/08/03 10:33:15 ERROR - jmeter.engine.ClientJMeterEngine: 
java.rmi.MarshalException: error marshalling arguments; nested excepti
        java.io.NotSerializableException: java.nio.DirectByteBuffer
        at sun.rmi.server.UnicastRef.invoke(Unknown Source)
        at
org.apache.jmeter.engine.RemoteJMeterEngineImpl_Stub.configure(Unknown
Source)
        at
org.apache.jmeter.engine.ClientJMeterEngine.run(ClientJMeterEngine.java:131)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.io.NotSerializableException: java.nio.DirectByteBuffer
        at java.io.ObjectOutputStream.writeObject0(Unknown Source)
        at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
        at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
        at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
        at java.io.ObjectOutputStream.writeObject0(Unknown Source)
        at java.io.ObjectOutputStream.writeObject(Unknown Source)
        at java.util.HashMap.writeObject(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor728.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
        at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
        at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
        at java.io.ObjectOutputStream.writeObject0(Unknown Source)
        at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
        at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
        at
org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
        at sun.reflect.GeneratedMethodAccessor730.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
        at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
        at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
        at java.io.ObjectOutputStream.writeObject0(Unknown Source)
        at java.io.ObjectOutputStream.writeObject(Unknown Source)
        at java.util.HashMap.writeObject(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor728.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
        at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
        at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
        at java.io.ObjectOutputStream.writeObject0(Unknown Source)
        at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
        at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
        at
org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
        at sun.reflect.GeneratedMethodAccessor730.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
        at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
        at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
        at java.io.ObjectOutputStream.writeObject0(Unknown Source)
        at java.io.ObjectOutputStream.writeObject(Unknown Source)
        at java.util.HashMap.writeObject(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor728.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
        at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
        at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
        at java.io.ObjectOutputStream.writeObject0(Unknown Source)
        at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
        at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
        at
org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
        at sun.reflect.GeneratedMethodAccessor730.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
        at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
        at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
        at java.io.ObjectOutputStream.writeObject0(Unknown Source)
        at java.io.ObjectOutputStream.writeObject(Unknown Source)
        at java.util.HashMap.writeObject(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor728.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
        at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
        at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
        at java.io.ObjectOutputStream.writeObject0(Unknown Source)
        at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
        at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
        at
org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
        at sun.reflect.GeneratedMethodAccessor730.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
        at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
        at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
        at java.io.ObjectOutputStream.writeObject0(Unknown Source)
        at java.io.ObjectOutputStream.writeObject(Unknown Source)
        at sun.rmi.server.UnicastRef.marshalValue(Unknown Source)
        ... 4 more/*

--
View this message in context: http://jmeter.512774.n5.nabble.com/Issues-with-JMeter-Master-Slave-configuration-tp4661694p4661694.html
Sent from the JMeter - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Issues with JMeter Master-Slave configuration

Posted by Oliver Lloyd <ol...@hotmail.com>.
It probably is a configuration issue - at least in the sense that the problem
only occurs under certain circumstances. You see, the thing is this
functionality normally works; in your case there is something different
which is causing a problem. Now, this may be a real code issue but if you
can isolate the cause you will be probably be able to workaround it and
then, when you have a clear understanding, you can help others by raising a
bug yourself so future releases will be better.

What happens when you remove the CSV dataset?
What if you try to run a very simple testplan remotely. Does this work?
Have you checked connectivity for RMI? Firewalls? 
Permissions?
Are you running the same version of Java on both Master and Slave?

You seem like a bright type so I won't patronise you with explanations for
why little tests like this can help debug your problem.

By the way, my response might not have been very useful to you, but hey, at
least I took the time to try and help you. Oh, and I meant what I said about
using Windows 7, I have had issues using csv files edited in this OS and
then used remotely on Linux so for that reason I avoid this scenario. You
also get the added bonus of not having to update your file paths all the
time!

--
View this message in context: http://jmeter.512774.n5.nabble.com/Issues-with-JMeter-Master-Slave-configuration-tp4661694p4687567.html
Sent from the JMeter - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: Issues with JMeter Master-Slave configuration

Posted by "_ext van Leeuwen, Paul" <pa...@wincor-nixdorf.com>.
Well, I have no experience with JMeter code, but it seems that the #configure method in the RemoteJMeterEngineImpl_Stub class tries to serialize a java.nio.DirectByteBuffer object, which is apparently not a serializable class.

I would not expect this to be a configuration issue, like a wrong path or such, resulting in such exception. Unless this DirectByteBuffer is passed in via your code (a plugin or such) I would expect this to be a bug in JMeter. I cannot find a bug in bugzilla for this (yet), therefore you might want to check if you use the latest version (:at least until someone comes up with a more useful response then this one :). You might also consider adding this stacktrace (error) to the project's bugzilla, as to me this appears to be a bug.

But again, I have no experience with the JMeter code, so this might be considered expected behaviour :)

Best of luck,
Paul

--
Paul van Leeuwen

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Issues with JMeter Master-Slave configuration

Posted by Oliver Lloyd <ol...@hotmail.com>.
Either:

1. The file is just plain not there on the remote server, did you put it
there?
2. You put it there but didn't update the path to the file in the CSV
config.

If you are trying to develop testplans on a windows machine and then run
them on a unix server, well, that sounds painful. You'd do better to work
over consistent OSs. Install Ubuntu or get a Mac - they're better.

Oliver


--
View this message in context: http://jmeter.512774.n5.nabble.com/Issues-with-JMeter-Master-Slave-configuration-tp4661694p4662007.html
Sent from the JMeter - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org