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 2013/03/13 10:33:10 UTC
[Bug 54685] New: ArrayIndexOutOfBoundsException if "sample_variable"
is set but not used
https://issues.apache.org/bugzilla/show_bug.cgi?id=54685
Bug ID: 54685
Summary: ArrayIndexOutOfBoundsException if "sample_variable" is
set but not used
Product: JMeter
Version: 2.9
Hardware: PC
Status: NEW
Severity: normal
Priority: P2
Component: Main
Assignee: issues@jmeter.apache.org
Reporter: dlade@web.de
Classification: Unclassified
I set the jmeter property "sample_variable" to a variable name I wan't to send
optionally. But if the variable is not available during the load test, the
following exception occurs:
2013/03/13 02:39:13 ERROR - jmeter.samplers.BatchSampleSender: testEnded(host)
java.rmi.ServerError: Error occurred in s
erver thread; nested exception is:
org.apache.jorphan.util.JMeterError: Check the sample_variable
settings!
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:333)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
at
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
at
org.apache.jmeter.samplers.RemoteSampleListenerImpl_Stub.processBatch(Unknown
Source)
at
org.apache.jmeter.samplers.BatchSampleSender.testEnded(BatchSampleSender.java:125)
at
org.apache.jmeter.samplers.DataStrippingSampleSender.testEnded(DataStrippingSampleSender.java:70)
at
org.apache.jmeter.samplers.RemoteListenerWrapper.testEnded(RemoteListenerWrapper.java:99)
at
org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfEnd(StandardJMeterEngine.java:223)
at
org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:437)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.jorphan.util.JMeterError: Check the sample_variable
settings!
at
org.apache.jmeter.samplers.SampleEvent.getVarValue(SampleEvent.java:159)
at
org.apache.jmeter.save.converters.SampleResultConverter.setAttributes(SampleResultConverter.java:286)
at
org.apache.jmeter.save.converters.SampleResultConverter.marshal(SampleResultConverter.java:117)
at
com.thoughtworks.xstream.core.TreeMarshaller.convert(TreeMarshaller.java:70)
at
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
at
com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
at
com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:82)
at
com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37)
at com.thoughtworks.xstream.XStream.marshal(XStream.java:894)
at
org.apache.jmeter.save.SaveService.saveSampleResult(SaveService.java:359)
at
org.apache.jmeter.reporters.ResultCollector.sampleOccurred(ResultCollector.java:507)
at
org.apache.jmeter.samplers.RemoteSampleListenerImpl.processBatch(RemoteSampleListenerImpl.java:96)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
... 1 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
at
org.apache.jmeter.samplers.SampleEvent.getVarValue(SampleEvent.java:157)
... 24 more
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 54685] ArrayIndexOutOfBoundsException if "sample_variable" is
set in client but not server
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=54685
Sebb <se...@apache.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|ArrayIndexOutOfBoundsExcept |ArrayIndexOutOfBoundsExcept
|ion if "sample_variable" is |ion if "sample_variable" is
|set but not used |set in client but not
| |server
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 54685] ArrayIndexOutOfBoundsException if "sample_variable" is
set but not used
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=54685
Sebb <se...@apache.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEEDINFO |NEW
--- Comment #7 from Sebb <se...@apache.org> ---
I have now managed to reproduce the problem.
Investigating.
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 54685] ArrayIndexOutOfBoundsException if "sample_variable" is
set but not used
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=54685
--- Comment #4 from Danny Lade <dl...@web.de> ---
Created attachment 30103
--> https://issues.apache.org/bugzilla/attachment.cgi?id=30103&action=edit
a log full of exceptions ...
I currently reproduced it simply:
1. I set "sample_variables=foobar" at jmeter-client/bin/jmeter.properties
2. I set "#sample_variables" at jmeter-server/bin/jmeter.properties
3. started remote jmeter by jmeter-server/bin/jmeter-server.bat
4. started a test with UI using jmeter-client for it
I got a log full of exceptions ...
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 54685] ArrayIndexOutOfBoundsException if "sample_variable" is
set but not used
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=54685
--- Comment #6 from Sebb <se...@apache.org> ---
We need the client log as well.
For some reason the sample_variables property does not seem to being
propagated.
Also, the first part of the server log is missing.
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 54685] ArrayIndexOutOfBoundsException if "sample_variable" is
set in client but not server
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=54685
Sebb <se...@apache.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #9 from Sebb <se...@apache.org> ---
URL: http://svn.apache.org/r1461911
Log:
ArrayIndexOutOfBoundsException if "sample_variable" is set in client but not
server
Bugzilla Id: 54685
Added:
jmeter/trunk/bin/testfiles/Bug54685.csv
jmeter/trunk/bin/testfiles/Bug54685.jmx (with props)
jmeter/trunk/bin/testfiles/Bug54685.xml (with props)
Modified:
jmeter/trunk/build.xml
jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java
jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleEvent.java
jmeter/trunk/xdocs/changes.xml
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 54685] ArrayIndexOutOfBoundsException if "sample_variable" is
set but not used
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=54685
Sebb <se...@apache.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |NEEDINFO
OS| |All
--- Comment #1 from Sebb <se...@apache.org> ---
AFAICT this error is caused by a mismatch between the variable names used by
client/server instances; not by a missing variable value.
However I don't see how this can happen normally, as the client sends the list
to all the servers.
Have you got the logs for all the client and server instances?
If so, please search for instances of the string
sample_variables
in all the logs for a failed run and report the matches here.
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 54685] ArrayIndexOutOfBoundsException if "sample_variable" is
set but not used
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=54685
--- Comment #3 from Sebb <se...@apache.org> ---
(In reply to comment #2)
> Ok, you're right.
>
> If I don't set the property "sample_variable" in either remote or client
> settings the problem occurs.
I have not been able to reproduce that.
> But then IMHO the bug is, that this value can not be configured by client
> only, as the most other properties allow.
The variable needs to be the same on all the systems, which is why the client
sends the same list to all the remote servers.
> And on the other hand no Exception should be thrown but an error message to
> the log would be more helpful.
JMeter already does log the problem with full stacktrace.
Until we find a cause, it's not clear whether the test can be allowed to carry
on.
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 54685] ArrayIndexOutOfBoundsException if "sample_variable" is
set but not used
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=54685
--- Comment #8 from Sebb <se...@apache.org> ---
Looks like the problem is partly one of timing: the properties are passed
across, but the class that uses them has already been loaded and has already
fetched the value of the property.
However, that is not the only problem: it should be possible to change the
variable names between test runs.
The work-round is to ensure eaxctly the same set of variables is defined in
every JMeter instance. [This is obviously error-prone, which is why the client
tries to tell the servers what variables to save at test startup].
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 54685] ArrayIndexOutOfBoundsException if "sample_variable" is
set but not used
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=54685
--- Comment #2 from Danny Lade <dl...@web.de> ---
Ok, you're right.
If I don't set the property "sample_variable" in either remote or client
settings the problem occurs.
But then IMHO the bug is, that this value can not be configured by client only,
as the most other properties allow.
And on the other hand no Exception should be thrown but an error message to the
log would be more helpful.
--
You are receiving this mail because:
You are the assignee for the bug.
[Bug 54685] ArrayIndexOutOfBoundsException if "sample_variable" is
set but not used
Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=54685
--- Comment #5 from Danny Lade <dl...@web.de> ---
It could be quiet easy to fix if because these variables are just optional
ones.
IMO there is no need for this exception.
--
You are receiving this mail because:
You are the assignee for the bug.