JMeter错误分析
上一篇 /
下一篇 2008-12-12 18:29:26
/ 个人分类:性能测试
今天在用JMeter做性能测试的时候,模拟了100个用户去做同一个动作的时候出现了一个错误,经过查找,发现出错的代码,应该是JMeter的Bug.
java.io.IOException: missing CR
at sun.net.www.http.ChunkedInputStream.processRaw(ChunkedInputStream.java:378)
at sun.net.www.http.ChunkedInputStream.readAheadNonBlocking(ChunkedInputStream.java:493)
at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:584)
at sun.net.www.http.ChunkedInputStream.available(ChunkedInputStream.java:692)
at java.io.FilterInputStream.available(FilterInputStream.java:142)
at java.io.BufferedInputStream.read(BufferedInputStream.java:325)
at java.io.FilterInputStream.read(FilterInputStream.java:90)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.readResponse(HTTPSamplerBase.java:1594)
at org.apache.jmeter.protocol.http.sampler.HTTPSampler.readResponse(HTTPSampler.java:253)
at org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(HTTPSampler.java:463)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1021)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1007)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:290)
at java.lang.Thread.run(Thread.java:619)
问题出在ChunkedInputStream.java的代码的processRaw()中,由于没有等到'\r'标记,所以报了这个错:
/**
* Awaiting CRLF after the chunk
*/
case STATE_AWAITING_CHUNK_EOL:
/* not available yet */
if (rawPos + 1 >= rawCount) {
return;
}
if (rawData[rawPos] != '\r') {
error = true;
throw new IOException("missing CR");
}
if (rawData[rawPos+1] != '\n') {
error = true;
throw new IOException("missing LF");
}
rawPos += 2;
调高Tomcat的内存,这个问题不会再出现。
收藏
举报
TAG:
性能测试