On Wed, Sep 30, 2020 at 7:47 PM Mark Thomas <ma...@apache.org> wrote:
> On 30/09/2020 16:17, Mark Thomas wrote: > > On 30/09/2020 13:53, Martin Grigorov wrote: > >> On Wed, Sep 30, 2020 at 12:50 PM Martin Grigorov <mgrigo...@apache.org> > > > > > > <snip/> > > > >> When I load test HTTP2 with POST (with big bodies) there are many errors > >> like: > >> > >> 1) > >> Exception in thread "https-jsse-nio-8080-exec-5" > >> java.nio.BufferOverflowException > >> at java.base/java.nio.ByteBuffer.put(ByteBuffer.java:957) > >> at java.base/java.nio.HeapByteBuffer.put(HeapByteBuffer.java:247) > >> at > >> org.apache.tomcat.util.net > .SocketBufferHandler.unReadReadBuffer(SocketBufferHandler.java:100) > >> at > >> org.apache.tomcat.util.net > .SocketWrapperBase.unRead(SocketWrapperBase.java:401) > >> at > >> > org.apache.coyote.http2.Http2AsyncParser$FrameCompletionHandler.completed(Http2AsyncParser.java:307) > >> at > >> > org.apache.coyote.http2.Http2AsyncParser$FrameCompletionHandler.completed(Http2AsyncParser.java:164) > >> at > >> org.apache.tomcat.util.net > .SocketWrapperBase$VectoredIOCompletionHandler.completed(SocketWrapperBase.java:1087) > >> at > >> org.apache.tomcat.util.net > .NioEndpoint$NioSocketWrapper$NioOperationState.run(NioEndpoint.java:1511) > >> at > >> > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) > >> at > >> > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) > >> at > >> > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > >> at java.base/java.lang.Thread.run(Thread.java:832) > >> > >> 2) > >> Sep 30, 2020 3:44:04 PM org.apache.tomcat.util.net.NioEndpoint$Poller > events > >> SEVERE: Failed to register socket with selector from poller > >> java.nio.channels.ClosedChannelException > >> at > >> > java.base/java.nio.channels.spi.AbstractSelectableChannel.register(AbstractSelectableChannel.java:222) > >> at > >> org.apache.tomcat.util.net > .NioEndpoint$Poller.events(NioEndpoint.java:609) > >> at org.apache.tomcat.util.net > .NioEndpoint$Poller.run(NioEndpoint.java:703) > >> at java.base/java.lang.Thread.run(Thread.java:832) > > > > That is helpful. Looks like you have found a way to reproduce the buffer > > issues reported in https://bz.apache.org/bugzilla/show_bug.cgi?id=64710 > > Can you share the command you used to trigger those errors please. > The Vegeta command I used is: jq -ncM '{"method": "POST", "url": "https://localhost:8080/testbed/plaintext", "body":"payload=Some sdgggwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwsdgssfshffheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeessssffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffpayload" | @base64, header: {"Content-Type": ["application/x-www-form-urlencoded"]}}' | vegeta attack -format=json -http2 -rate=1000 -max-workers=8 -insecure -duration=2m | vegeta encode > /tmp/http2.json; and vegeta report -type=json /tmp/http2.json | jq . The app is at https://github.com/martin-g/http2-server-perf-tests/tree/master/java/tomcat. Just start EmbeddedTomcat#main() with -Dtomcat.http2=true Martin > > Thanks, > > Mark > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >