apache / dubbo

The java implementation of Apache Dubbo. An RPC and microservice framework.
https://dubbo.apache.org/
Apache License 2.0
40.39k stars 26.41k forks source link

[Feature] HTTP/3 Support For Triple Protocol In Native #14297

Open oxsean opened 3 months ago

oxsean commented 3 months ago

Pre-check

Search before asking

Apache Dubbo Component

Java SDK (apache/dubbo)

Descriptions

We already have an initial version of HTTP/3. Since the HTTP/3 protocol uses JNI, we need to verify if it can work properly in native

Related issues

No response

Are you willing to submit a pull request to fix on your own?

Code of Conduct

FoghostCn commented 2 months ago

assign to me

oxsean commented 1 month ago

Native launch failed, looks like a jni incompatibility.

Caused by: org.apache.dubbo.remoting.RemotingException: Failed to bind NettyHttp3Server on /0.0.0.0:50052, cause: failed to load the required native library
        at org.apache.dubbo.remoting.transport.AbstractServer.<init>(AbstractServer.java:79) ~[dubbo-samples-native-image-provider.exe:3.3.0-beta.5-SNAPSHOT]
        at org.apache.dubbo.remoting.transport.netty4.NettyHttp3Server.<init>(NettyHttp3Server.java:74) ~[na:na]
        at org.apache.dubbo.rpc.protocol.tri.Http3Exchanger.lambda$bind$0(Http3Exchanger.java:74) ~[na:na]
        ... 36 common frames omitted
Caused by: java.lang.UnsatisfiedLinkError: failed to load the required native library
        at io.netty.incubator.codec.quic.Quic.ensureAvailability(Quic.java:81) ~[na:na]
        at io.netty.incubator.codec.quic.QuicheQuicSslContext.<init>(QuicheQuicSslContext.java:79) ~[na:na]
        at io.netty.incubator.codec.quic.QuicSslContextBuilder.build(QuicSslContextBuilder.java:375) ~[na:na]
        at org.apache.dubbo.remoting.transport.netty4.NettyHttp3Server.doOpen(NettyHttp3Server.java:95) ~[na:na]
        at org.apache.dubbo.remoting.transport.AbstractServer.<init>(AbstractServer.java:69) ~[dubbo-samples-native-image-provider.exe:3.3.0-beta.5-SNAPSHOT]
        ... 38 common frames omitted
Caused by: java.lang.LinkageError: Possible multiple incompatible native libraries on the classpath for 'C:\Users\oznya\AppData\Local\Temp\netty_quiche_windows_x86_647972947523462776663.dll'?
        at io.netty.util.internal.NativeLibraryLoader.rethrowWithMoreDetailsIfPossible(NativeLibraryLoader.java:414) ~[na:na]
        at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:402) ~[na:na]
        at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:218) ~[na:na]
        at io.netty.incubator.codec.quic.Quiche.loadNativeLibrary(Quiche.java:78) ~[na:na]
        at io.netty.incubator.codec.quic.Quiche.<clinit>(Quiche.java:58) ~[na:na]
        at io.netty.incubator.codec.quic.Quic.<clinit>(Quic.java:46) ~[na:na]
        ... 42 common frames omitted
Caused by: java.lang.NoSuchMethodError: java.lang.Integer.valueOf(I)Ljava/lang/Integer;
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.functions.JNIFunctions$Support.getMethodID(JNIFunctions.java:1259) ~[na:na]
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.functions.JNIFunctions$Support.getMethodID(JNIFunctions.java:1244) ~[na:na]
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.functions.JNIFunctions.GetStaticMethodID(JNIFunctions.java:413) ~[na:na]
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.JNIOnLoadFunctionPointer.invoke(JNILibraryInitializer.java) ~[na:na]
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.JNILibraryInitializer.callOnLoadFunction(JNILibraryInitializer.java:71) ~[na:na]
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.JNILibraryInitializer.initialize(JNILibraryInitializer.java:132) ~[na:na]
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk.NativeLibrarySupport.addLibrary(NativeLibrarySupport.java:174) ~[na:na]
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk.NativeLibrarySupport.loadLibrary0(NativeLibrarySupport.java:130) ~[na:na]
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk.NativeLibrarySupport.loadLibraryAbsolute(NativeLibrarySupport.java:89) ~[na:na]
        at java.base@17.0.7/java.lang.ClassLoader.loadLibrary(ClassLoader.java:57) ~[dubbo-samples-native-image-provider.exe:na]
        at java.base@17.0.7/java.lang.Runtime.load0(Runtime.java:755) ~[na:na]
        at java.base@17.0.7/java.lang.System.load(System.java:1953) ~[na:na]
        at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:36) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at java.base@17.0.7/java.lang.reflect.Method.invoke(Method.java:568) ~[dubbo-samples-native-image-provider.exe:na]
        at io.netty.util.internal.NativeLibraryLoader$1.run(NativeLibraryLoader.java:430) ~[na:na]
        at java.base@17.0.7/java.security.AccessController.executePrivileged(AccessController.java:168) ~[na:na]
        at java.base@17.0.7/java.security.AccessController.doPrivileged(AccessController.java:318) ~[na:na]
        at io.netty.util.internal.NativeLibraryLoader.loadLibraryByHelper(NativeLibraryLoader.java:422) ~[na:na]
        at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:388) ~[na:na]
        ... 46 common frames omitted
        Suppressed: java.lang.UnsatisfiedLinkError: Unsupported JNI version 0xffffffff, required by C:\Users\oznya\AppData\Local\Temp\netty_quiche_windows_x86_647972947523462776663.dll
                at org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.JNILibraryInitializer.checkSupportedJNIVersion(JNILibraryInitializer.java:79) ~[na:na]
                at org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.JNILibraryInitializer.callOnLoadFunction(JNILibraryInitializer.java:72) ~[na:na]
                ... 60 common frames omitted
FoghostCn commented 1 month ago
2024-08-13T15:44:55.292+08:00  WARN [dubbo-samples-nativeimage-provider,,] 21316 --- [dubbo-samples-nativeimage-provider] [yServerBoss-4-1] i.netty.channel.DefaultChannelPipeline   : An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.

org.apache.dubbo.common.beans.ScopeBeanException: create bean instance failed, type=org.apache.dubbo.rpc.protocol.tri.h12.http2.CompositeExceptionHandler
        at org.apache.dubbo.common.beans.factory.ScopeBeanFactory.createAndRegisterBean(ScopeBeanFactory.java:97) ~[na:na]
        at org.apache.dubbo.common.beans.factory.ScopeBeanFactory.getOrRegisterBean(ScopeBeanFactory.java:134) ~[na:na]
        at org.apache.dubbo.common.beans.factory.ScopeBeanFactory.getOrRegisterBean(ScopeBeanFactory.java:124) ~[na:na]
        at org.apache.dubbo.rpc.protocol.tri.h12.AbstractServerTransportListener.<init>(AbstractServerTransportListener.java:80) ~[dubbo-samples-native-image-provider.exe:3.3.0-beta.5]
        at org.apache.dubbo.rpc.protocol.tri.h12.http2.GenericHttp2ServerTransportListener.<init>(GenericHttp2ServerTransportListener.java:65) ~[dubbo-samples-native-image-provider.exe:3.3.0-beta.5]
        at org.apache.dubbo.rpc.protocol.tri.h12.grpc.GrpcHttp2ServerTransportListener.<init>(GrpcHttp2ServerTransportListener.java:57) ~[dubbo-samples-native-image-provider.exe:3.3.0-beta.5]
        at org.apache.dubbo.rpc.protocol.tri.h3.grpc.GrpcHttp3ServerTransportListener.<init>(GrpcHttp3ServerTransportListener.java:30) ~[na:na]
        at org.apache.dubbo.rpc.protocol.tri.h3.grpc.GrpcHttp3ServerTransportListenerFactory.newInstance(GrpcHttp3ServerTransportListenerFactory.java:32) ~[dubbo-samples-native-image-provider.exe:3.3.0-beta.5]
        at org.apache.dubbo.remoting.http3.netty4.NettyHttp3ProtocolSelectorHandler.channelRead0(NettyHttp3ProtocolSelectorHandler.java:67) ~[na:na]
        at org.apache.dubbo.remoting.http3.netty4.NettyHttp3ProtocolSelectorHandler.channelRead0(NettyHttp3ProtocolSelectorHandler.java:38) ~[na:na]
        at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at org.apache.dubbo.remoting.http3.netty4.NettyHttp3FrameCodec.channelRead(NettyHttp3FrameCodec.java:59) ~[na:na]
        at io.netty.incubator.codec.http3.Http3RequestStreamInboundHandler.channelRead(Http3RequestStreamInboundHandler.java:40) ~[dubbo-samples-native-image-provider.exe:0.0.28.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.incubator.codec.http3.Http3RequestStreamValidationHandler.channelRead(Http3RequestStreamValidationHandler.java:120) ~[na:na]
        at io.netty.incubator.codec.http3.Http3RequestStreamValidationHandler.channelRead(Http3RequestStreamValidationHandler.java:34) ~[na:na]
        at io.netty.incubator.codec.http3.Http3FrameTypeInboundValidationHandler.channelRead(Http3FrameTypeInboundValidationHandler.java:37) ~[dubbo-samples-native-image-provider.exe:0.0.28.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.incubator.codec.http3.Http3RequestStreamDecodeStateValidator.channelRead(Http3RequestStreamDecodeStateValidator.java:45) ~[na:na]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.incubator.codec.http3.Http3FrameCodec.channelRead(Http3FrameCodec.java:131) ~[na:na]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.incubator.codec.quic.QuicheQuicStreamChannel$QuicStreamChannelUnsafe.recv(QuicheQuicStreamChannel.java:978) ~[na:na]
        at io.netty.incubator.codec.quic.QuicheQuicStreamChannel$QuicStreamChannelUnsafe.beginRead(QuicheQuicStreamChannel.java:623) ~[na:na]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.read(DefaultChannelPipeline.java:1362) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeRead(AbstractChannelHandlerContext.java:845) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.read(AbstractChannelHandlerContext.java:824) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.incubator.codec.http3.Http3FrameCodec.read(Http3FrameCodec.java:635) ~[na:na]
        at io.netty.channel.AbstractChannelHandlerContext.invokeRead(AbstractChannelHandlerContext.java:851) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.read(AbstractChannelHandlerContext.java:824) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.incubator.codec.http3.Http3FrameTypeDuplexValidationHandler.read(Http3FrameTypeDuplexValidationHandler.java:85) ~[dubbo-samples-native-image-provider.exe:0.0.28.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeRead(AbstractChannelHandlerContext.java:851) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.read(AbstractChannelHandlerContext.java:824) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at org.apache.dubbo.remoting.http3.netty4.NettyHttp3FrameCodec.read(NettyHttp3FrameCodec.java:148) ~[na:na]
        at io.netty.channel.AbstractChannelHandlerContext.invokeRead(AbstractChannelHandlerContext.java:851) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.read(AbstractChannelHandlerContext.java:824) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.DefaultChannelPipeline.read(DefaultChannelPipeline.java:1004) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.DefaultChannelPipeline.read(DefaultChannelPipeline.java:46) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.incubator.codec.quic.QuicheQuicStreamChannel.read(QuicheQuicStreamChannel.java:288) ~[na:na]
        at io.netty.incubator.codec.quic.QuicheQuicStreamChannel.read(QuicheQuicStreamChannel.java:52) ~[na:na]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.readIfIsAutoRead(DefaultChannelPipeline.java:1422) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelActive(DefaultChannelPipeline.java:1400) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:258) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:238) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.DefaultChannelPipeline.fireChannelActive(DefaultChannelPipeline.java:895) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.incubator.codec.quic.QuicheQuicStreamChannel$QuicStreamChannelUnsafe.register(QuicheQuicStreamChannel.java:488) ~[na:na]
        at io.netty.channel.SingleThreadEventLoop.register(SingleThreadEventLoop.java:89) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.SingleThreadEventLoop.register(SingleThreadEventLoop.java:83) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.incubator.codec.quic.QuicheQuicChannel$1.onUnhandledInboundMessage(QuicheQuicChannel.java:435) ~[na:na]
        at io.netty.channel.DefaultChannelPipeline$TailContext.channelRead(DefaultChannelPipeline.java:1296) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.incubator.codec.http3.Http3ConnectionHandler.channelRead(Http3ConnectionHandler.java:180) ~[dubbo-samples-native-image-provider.exe:0.0.28.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:289) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at org.apache.dubbo.remoting.transport.netty4.NettyServerHandler.channelRead(NettyServerHandler.java:108) ~[dubbo-samples-native-image-provider.exe:3.3.0-beta.5]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.incubator.codec.quic.QuicheQuicChannel$QuicChannelUnsafe.recvStream(QuicheQuicChannel.java:1808) ~[na:na]
        at io.netty.incubator.codec.quic.QuicheQuicChannel$QuicChannelUnsafe.processReceived(QuicheQuicChannel.java:1687) ~[na:na]
        at io.netty.incubator.codec.quic.QuicheQuicChannel$QuicChannelUnsafe.connectionRecv(QuicheQuicChannel.java:1622) ~[na:na]
        at io.netty.incubator.codec.quic.QuicheQuicChannel.recv(QuicheQuicChannel.java:942) ~[dubbo-samples-native-image-provider.exe:0.0.62.Final]
        at io.netty.incubator.codec.quic.QuicheQuicCodec$QuicCodecHeaderProcessor.process(QuicheQuicCodec.java:375) ~[na:na]
        at io.netty.incubator.codec.quic.QuicHeaderParser.parse(QuicHeaderParser.java:130) ~[na:na]
        at io.netty.incubator.codec.quic.QuicheQuicCodec.handleQuicPacket(QuicheQuicCodec.java:204) ~[dubbo-samples-native-image-provider.exe:0.0.62.Final]
        at io.netty.incubator.codec.quic.QuicheQuicCodec.channelRead(QuicheQuicCodec.java:195) ~[dubbo-samples-native-image-provider.exe:0.0.62.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[dubbo-samples-native-image-provider.exe:4.1.107.Final]
        at io.netty.channel.nio.AbstractNioMessageChannel$NioMessageUnsafe.read(AbstractNioMessageChannel.java:97) ~[na:na]
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) ~[na:na]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) ~[na:na]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) ~[na:na]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) ~[na:na]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[na:na]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[na:na]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[na:na]
        at java.base@17.0.9/java.lang.Thread.run(Thread.java:840) ~[dubbo-samples-native-image-provider.exe:na]
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:807) ~[dubbo-samples-native-image-provider.exe:na]
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.windows.WindowsPlatformThreads.osThreadStartRoutine(WindowsPlatformThreads.java:179) ~[na:na]
Caused by: java.lang.IllegalArgumentException: None matched constructor was found for type: org.apache.dubbo.rpc.protocol.tri.h12.http2.CompositeExceptionHandler
        at org.apache.dubbo.common.beans.support.InstantiationStrategy.instantiate(InstantiationStrategy.java:85) ~[na:na]
        at org.apache.dubbo.common.beans.factory.ScopeBeanFactory.createAndRegisterBean(ScopeBeanFactory.java:95) ~[na:na]
        ... 112 common frames omitted
FoghostCn commented 1 month ago

resolved in https://github.com/netty/netty-incubator-codec-quic/pull/741

normanmaurer commented 3 weeks ago

The netty quick PR was merged

oxsean commented 3 weeks ago

The netty quick PR was merged

Thanks a lot.