netty / netty-incubator-codec-http3

Experimental HTTP3 codec on top of QUIC
Apache License 2.0
167 stars 35 forks source link

QuicException: STREAM_STOPPED #262

Closed poisonriver closed 9 months ago

poisonriver commented 9 months ago

When I started to put some client load on my application, I noticed that there appeared a number of same exceptions in logs, can you advise please?

io.netty.incubator.codec.quic.QuicException: STREAM_STOPPED
    at io.netty.incubator.codec.quic.Quiche.newException(Quiche.java:749)
    at io.netty.incubator.codec.quic.QuicheQuicChannel.handleWritableStreams(QuicheQuicChannel.java:912)
    at io.netty.incubator.codec.quic.QuicheQuicChannel.access$2800(QuicheQuicChannel.java:72)
    at io.netty.incubator.codec.quic.QuicheQuicChannel$QuicChannelUnsafe.processReceived(QuicheQuicChannel.java:1494)
    at io.netty.incubator.codec.quic.QuicheQuicChannel$QuicChannelUnsafe.connectionRecv(QuicheQuicChannel.java:1444)
    at io.netty.incubator.codec.quic.QuicheQuicChannel.recv(QuicheQuicChannel.java:864)
    at io.netty.incubator.codec.quic.QuicheQuicCodec$QuicCodecHeaderProcessor.process(QuicheQuicCodec.java:274)
    at io.netty.incubator.codec.quic.QuicHeaderParser.parse(QuicHeaderParser.java:127)
    at io.netty.incubator.codec.quic.QuicheQuicCodec.handleQuicPacket(QuicheQuicCodec.java:143)
    at io.netty.incubator.codec.quic.QuicheQuicCodec.channelRead(QuicheQuicCodec.java:134)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
    at io.netty.channel.epoll.EpollDatagramChannel.processPacket(EpollDatagramChannel.java:662)
    at io.netty.channel.epoll.EpollDatagramChannel.recvmsg(EpollDatagramChannel.java:697)
    at io.netty.channel.epoll.EpollDatagramChannel.access$300(EpollDatagramChannel.java:56)
    at io.netty.channel.epoll.EpollDatagramChannel$EpollDatagramChannelUnsafe.epollInReady(EpollDatagramChannel.java:536)
    at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509)
    at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)
normanmaurer commented 9 months ago

This is a bug...

normanmaurer commented 9 months ago

I think this should be fixed by https://github.com/netty/netty-incubator-codec-quic/pull/626

normanmaurer commented 9 months ago

Fixed by https://github.com/netty/netty-incubator-codec-http3/pull/263

poisonriver commented 9 months ago

@normanmaurer I'm testing it right now, will let you know about the results

poisonriver commented 9 months ago

@normanmaurer Thanks for the quick fix. As expected I don't see such exceptions any more