Bug when reading metadata
Closed this issue · 2 comments
cescoffier commented
The recent changs regarding the metadata/trailer seem to be causing issues:
2023-02-13T13:15:31.1187617Z 2023-02-13 13:15:31,036 ERROR [io.qua.ver.cor.run.VertxCoreRecorder] (vert.x-eventloop-thread-1) Uncaught exception received by Vert.x: java.lang.ArrayIndexOutOfBoundsException: Index 10 out of bounds for length 10
2023-02-13T13:15:31.1188475Z at io.vertx.grpc.common.impl.Utils.readMetadata(Utils.java:34)
2023-02-13T13:15:31.1189648Z at io.vertx.grpc.client.VertxClientCall.lambda$null$2(VertxClientCall.java:90)
2023-02-13T13:15:31.1190216Z at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141)
2023-02-13T13:15:31.1190754Z at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60)
2023-02-13T13:15:31.1191353Z at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211)
2023-02-13T13:15:31.1192254Z at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:40)
2023-02-13T13:15:31.1192716Z at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60)
2023-02-13T13:15:31.1193146Z at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211)
2023-02-13T13:15:31.1193585Z at io.vertx.core.impl.future.PromiseImpl.tryComplete(PromiseImpl.java:23)
2023-02-13T13:15:31.1193972Z at io.vertx.core.Promise.complete(Promise.java:66)
2023-02-13T13:15:31.1194411Z at io.vertx.core.http.impl.HttpClientRequestImpl.handleResponse(HttpClientRequestImpl.java:346)
2023-02-13T13:15:31.1194955Z at io.vertx.core.http.impl.HttpClientRequestBase.handleResponse(HttpClientRequestBase.java:182)
2023-02-13T13:15:31.1195481Z at io.vertx.core.http.impl.HttpClientRequestBase.lambda$new$0(HttpClientRequestBase.java:71)
2023-02-13T13:15:31.1195926Z at io.vertx.core.impl.EventLoopContext.emit(EventLoopContext.java:55)
2023-02-13T13:15:31.1196306Z at io.vertx.core.impl.ContextBase.emit(ContextBase.java:239)
2023-02-13T13:15:31.1196736Z at io.vertx.core.http.impl.Http2ClientConnection$Stream.onHeaders(Http2ClientConnection.java:331)
2023-02-13T13:15:31.1197244Z at io.vertx.core.http.impl.Http2ClientConnection.onHeadersRead(Http2ClientConnection.java:189)
2023-02-13T13:15:31.1197749Z at io.vertx.core.http.impl.Http2ConnectionBase.onHeadersRead(Http2ConnectionBase.java:206)
2023-02-13T13:15:31.1198331Z at io.netty.handler.codec.http2.Http2FrameListenerDecorator.onHeadersRead(Http2FrameListenerDecorator.java:48)
2023-02-13T13:15:31.1198958Z at io.netty.handler.codec.http2.Http2EmptyDataFrameListener.onHeadersRead(Http2EmptyDataFrameListener.java:63)
2023-02-13T13:15:31.1199599Z at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.onHeadersRead(DefaultHttp2ConnectionDecoder.java:409)
2023-02-13T13:15:31.1200202Z at io.netty.handler.codec.http2.DefaultHttp2FrameReader$1.processFragment(DefaultHttp2FrameReader.java:450)
2023-02-13T13:15:31.1200773Z at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readHeadersFrame(DefaultHttp2FrameReader.java:457)
2023-02-13T13:15:31.1201603Z at io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:253)
2023-02-13T13:15:31.1202200Z at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:159)
2023-02-13T13:15:31.1202797Z at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:173)
2023-02-13T13:15:31.1203487Z at io.netty.handler.codec.http2.DecoratingHttp2ConnectionDecoder.decodeFrame(DecoratingHttp2ConnectionDecoder.java:63)
2023-02-13T13:15:31.1204102Z at io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:393)
2023-02-13T13:15:31.1204641Z at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:453)
2023-02-13T13:15:31.1205217Z at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)
2023-02-13T13:15:31.1205789Z at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468)
2023-02-13T13:15:31.1206292Z at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
2023-02-13T13:15:31.1206840Z at io.vertx.core.http.impl.VertxHttp2ConnectionHandler.channelRead(VertxHttp2ConnectionHandler.java:408)
tsegismont commented
Can you provide a small reproducer? Even in the form of a small Quarkus app?
cescoffier commented
@tsegismont It fails the gRPC - interceptors IT tests in quarkus: https://github.com/quarkusio/quarkus/tree/main/integration-tests/grpc-interceptors