dev@grizzly.java.net

Re: stacktrace while doing an ab

From: Jeanfrancois Arcand <Jeanfrancois.Arcand_at_Sun.COM>
Date: Mon, 30 Mar 2009 13:49:13 -0400

Salut,

rama wrote:
>
>> Salut,
>>
>> rama wrote:
>>> probably this is of no-use, but is quite strange.
>>> using 1.9.10 release, i was testing the statistics with the sample
>>> class as, related to
>>> https://grizzly.dev.java.net/issues/show_bug.cgi?id=376 issue.
>>> So, i have simply execute the class, using a directory that actually
>>> exist.
>>> After that, with firefox, i have get the index.html just to be sure
>>> that it's working well.
>>> On firefox i get the correct output, of a simple html page.
>>
>> What kind of corruption? Half a page or something like that?
>>
>
> wait wait :) i means "on firefox i get the correct output" not corrupted
> output :)
>
>
>>
>>> After that i have do
>>> ab -c 10 -n 1000 http://localhost:8080/index.html
>>> Concurrency Level: 10
>>> Time taken for tests: 0.491 seconds
>>> Complete requests: 1000
>>> Failed requests: 0
>>> Broken pipe errors: 0
>>> Total transferred: 1534533 bytes
>>> HTML transferred: 1411410 bytes
>>> Requests per second: 2036.66 [#/sec] (mean)
>>> Time per request: 4.91 [ms] (mean)
>>> Time per request: 0.49 [ms] (mean, across all concurrent requests)
>>> Transfer rate: 3125.32 [Kbytes/sec] received
>>> This, for me, means that all the request was completed correctly.
>>> (boken pipe is 0, and failed is 0, also html transferred is correct)
>>> At the end of AB, the console show this stack trace.
>>
>> Yes this is expected. ab close the connection before the server has
>> the time to write the last "chunk". I think we should increase the log
>> level to prevent confusion.
>>
>
> basically the stacktrace happen only with ab, so if there is nothing of
> wrong, just ignore the report :)
>
>
>> This is great report. Can you file an issue? On my side I will take a
>> look!
>>
>> Thanks!
>>
>>
>> -- Jeanfrancois
>>
>>
>
> seems that this wasn't really a great report, isn't it? :D

On the contrary, I can reproduce the issue with ab. I can see the half
baked html page :-) So just file an issue and I'm working on it right now

Thanks!

-- Jeanfrancois



>
>
>
>>
>>> GRAVE: HTTP Processing error
>>> _java.io.IOException_: Broken pipe
>>> at sun.nio.ch.FileDispatcher.write0(_Native Method_)
>>> at sun.nio.ch.SocketDispatcher.write(_SocketDispatcher.java:29_)
>>> at sun.nio.ch.IOUtil.writeFromNativeBuffer(_IOUtil.java:104_)
>>> at sun.nio.ch.IOUtil.write(_IOUtil.java:60_)
>>> at sun.nio.ch.SocketChannelImpl.write(_SocketChannelImpl.java:302_)
>>> at
>>> sun.nio.ch.FileChannelImpl.transferToTrustedChannel(_FileChannelImpl.java:450_)
>>>
>>> at sun.nio.ch.FileChannelImpl.transferTo(_FileChannelImpl.java:521_)
>>> at
>>> com.sun.grizzly.http.SocketChannelOutputBuffer.sendFile(_SocketChannelOutputBuffer.java:341_)
>>>
>>> at
>>> com.sun.grizzly.tcp.StaticResourcesAdapter.service(_StaticResourcesAdapter.java:217_)
>>>
>>> at
>>> com.sun.grizzly.tcp.StaticResourcesAdapter.service(_StaticResourcesAdapter.java:139_)
>>>
>>> at
>>> com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(_GrizzlyAdapter.java:123_)
>>>
>>> at
>>> com.sun.grizzly.http.ProcessorTask.invokeAdapter(_ProcessorTask.java:726_)
>>>
>>> at
>>> com.sun.grizzly.http.ProcessorTask.doProcess(_ProcessorTask.java:615_)
>>> at com.sun.grizzly.http.ProcessorTask.process(_ProcessorTask.java:895_)
>>> at
>>> com.sun.grizzly.http.DefaultProtocolFilter.execute(_DefaultProtocolFilter.java:162_)
>>>
>>> at
>>> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(_DefaultProtocolChain.java:136_)
>>>
>>> at
>>> com.sun.grizzly.DefaultProtocolChain.execute(_DefaultProtocolChain.java:103_)
>>>
>>> at
>>> com.sun.grizzly.DefaultProtocolChain.execute(_DefaultProtocolChain.java:89_)
>>>
>>> at
>>> com.sun.grizzly.http.HttpProtocolChain.execute(_HttpProtocolChain.java:76_)
>>>
>>> at
>>> com.sun.grizzly.ProtocolChainContextTask.doCall(_ProtocolChainContextTask.java:67_)
>>>
>>> at
>>> com.sun.grizzly.SelectionKeyContextTask.call(_SelectionKeyContextTask.java:57_)
>>>
>>> at java.util.concurrent.FutureTask$Sync.innerRun(_FutureTask.java:269_)
>>> at java.util.concurrent.FutureTask.run(_FutureTask.java:123_)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(_ThreadPoolExecutor.java:650_)
>>>
>>> at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(_ThreadPoolExecutor.java:675_)
>>>
>>> at java.lang.Thread.run(_Thread.java:613_)
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe_at_grizzly.dev.java.net
>> For additional commands, e-mail: dev-help_at_grizzly.dev.java.net
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_grizzly.dev.java.net
> For additional commands, e-mail: dev-help_at_grizzly.dev.java.net
>