You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by Luc Willems <wi...@pandora.be> on 2007/12/06 19:49:52 UTC

HTTP client problem under high load

	Hello all ,

i have some problem using the HttpClient protocol handlers from 2.0.0 M1 (from 5/12/2007) .
i'm creating a kind of HTTP load tool which have around 10 threads using 1000 and more connections
to send HTTP request at a fixed rate (xxx TPS)

on low/medium traffic there is now problem but on high TPS rates when using multible connections i get 
decode errors like :

2007-12-06 19:45:17,390|main|WARN |minaHTTPLoad.run(39)|banging
2007-12-06 19:45:20,723|pool-4-thread-1|ERROR|HTTPAgent.exceptionCaught(59)|error :Unsupported HTTP version:  (Hexdump: 00 A1 00 00 00 00 00 80 80 80 BF ... )
	at org.apache.mina.filter.codec.http.HttpCodecUtils.throwDecoderException(HttpCodecUtils.java:156)
	at org.apache.mina.filter.codec.http.HttpVersionDecodingState$1.finishDecode(HttpVersionDecodingState.java:46)
	at org.apache.mina.filter.codec.statemachine.ConsumeToDynamicTerminatorDecodingState.decode(ConsumeToDynamicTerminatorDecodingState.java:83)
	at org.apache.mina.filter.codec.http.HttpVersionDecodingState.decode(HttpVersionDecodingState.java:62)
	at org.apache.mina.filter.codec.statemachine.DecodingStateMachine.decode(DecodingStateMachine.java:77)
	....
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

the request i send is http://<server>/gif/l_arrow.gif

now from the hexdump it seems that the decoder is decoding the gif data as the first HTTP response line.
i checked the communication with wireshark , and response of the apache server was OK.
i use HTTP keep-alive .

i tried to "lock" the sending thread until the response of the previous request was recieved. this helps a bit but there are still some Exceptions.
main disadvantage is ofcourse  that it also "blocks" my thread so , NIO (non blocking IO) is not really the case here.

Is this a know issue with the current MINA 2.0.0 code base ?

	luc



Re: HTTP client problem under high load

Posted by Trustin Lee <tr...@gmail.com>.
thanks! let me take a look into it.

Trustin

On Dec 7, 2007 9:01 PM, Luc Willems <wi...@pandora.be> wrote:
> On Friday 07 December 2007 03:20:37 Trustin Lee wrote:
> > I think it's a new issue. Please file a JIRA issue.
> done ,
>
>         https://issues.apache.org/jira/browse/DIRMINA-492
>
> test app. is included.
>
>         luc
>



-- 
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP Key ID: 0x0255ECA6

Re: HTTP client problem under high load

Posted by Luc Willems <wi...@pandora.be>.
On Friday 07 December 2007 03:20:37 Trustin Lee wrote:
> I think it's a new issue. Please file a JIRA issue.
done ,

	https://issues.apache.org/jira/browse/DIRMINA-492

test app. is included.

	luc

Re: HTTP client problem under high load

Posted by Trustin Lee <tr...@gmail.com>.
I think it's a new issue. Please file a JIRA issue.

On Dec 7, 2007 3:49 AM, Luc Willems <wi...@pandora.be> wrote:
>
>         Hello all ,
>
> i have some problem using the HttpClient protocol handlers from 2.0.0 M1 (from 5/12/2007) .
> i'm creating a kind of HTTP load tool which have around 10 threads using 1000 and more connections
> to send HTTP request at a fixed rate (xxx TPS)
>
> on low/medium traffic there is now problem but on high TPS rates when using multible connections i get
> decode errors like :
>
> 2007-12-06 19:45:17,390|main|WARN |minaHTTPLoad.run(39)|banging
> 2007-12-06 19:45:20,723|pool-4-thread-1|ERROR|HTTPAgent.exceptionCaught(59)|error :Unsupported HTTP version:  (Hexdump: 00 A1 00 00 00 00 00 80 80 80 BF ... )
>         at org.apache.mina.filter.codec.http.HttpCodecUtils.throwDecoderException(HttpCodecUtils.java:156)
>         at org.apache.mina.filter.codec.http.HttpVersionDecodingState$1.finishDecode(HttpVersionDecodingState.java:46)
>         at org.apache.mina.filter.codec.statemachine.ConsumeToDynamicTerminatorDecodingState.decode(ConsumeToDynamicTerminatorDecodingState.java:83)
>         at org.apache.mina.filter.codec.http.HttpVersionDecodingState.decode(HttpVersionDecodingState.java:62)
>         at org.apache.mina.filter.codec.statemachine.DecodingStateMachine.decode(DecodingStateMachine.java:77)
>         ....
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
>
> the request i send is http://<server>/gif/l_arrow.gif
>
> now from the hexdump it seems that the decoder is decoding the gif data as the first HTTP response line.
> i checked the communication with wireshark , and response of the apache server was OK.
> i use HTTP keep-alive .
>
> i tried to "lock" the sending thread until the response of the previous request was recieved. this helps a bit but there are still some Exceptions.
> main disadvantage is ofcourse  that it also "blocks" my thread so , NIO (non blocking IO) is not really the case here.
>
> Is this a know issue with the current MINA 2.0.0 code base ?
>
>         luc
>
>
>



-- 
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP Key ID: 0x0255ECA6