Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing iterator() implementation in AbstractHttp2Headers #10837

Closed
bswami50 opened this issue Jan 18, 2024 · 2 comments
Closed

Missing iterator() implementation in AbstractHttp2Headers #10837

bswami50 opened this issue Jan 18, 2024 · 2 comments
Assignees

Comments

@bswami50
Copy link

bswami50 commented Jan 18, 2024

Hi,

This looks like a different flavor of an earlier issue. The iterator method used here seems to be unimplemented here

Is it possible to provide a fix or workaround for this?

What version of gRPC-Java are you using?

Using grpc-netty-1.30.2 with Netty 4.1.104.Final.

What is your environment?

Linux

What did you expect to see?

No failures on upgrade from Netty 4.1.100.Final

What did you see instead?

Crash with stack trace as below

Steps to reproduce the bug

io.grpc.StatusRuntimeException: UNKNOWN
#011at io.grpc.stub.ClientCalls.toStatusRuntimeException(Unknown Source) ~[grpc-stub-1.30.2.jar:?]
#011at io.grpc.stub.ClientCalls.getUnchecked(Unknown Source) ~[grpc-stub-1.30.2.jar:?]
#011at io.grpc.stub.ClientCalls.blockingUnaryCall(Unknown Source) ~[grpc-stub-1.30.2.jar:?]
// application code redacted
#011at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
#011at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
#011at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.lang.UnsupportedOperationException
#011at io.grpc.netty.AbstractHttp2Headers.iterator(Unknown Source) ~[grpc-netty-1.30.2.jar:?]
#011at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.onHeadersRead(DefaultHttp2ConnectionDecoder.java:425) ~[netty-codec-http2-4.1.jar:4.1.104.Final]
#011at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.onHeadersRead(DefaultHttp2ConnectionDecoder.java:352) ~[netty-codec-http2-4.1.jar:4.1.104.Final]
#011at io.netty.handler.codec.http2.Http2InboundFrameLogger$1.onHeadersRead(Http2InboundFrameLogger.java:56) ~[netty-codec-http2-4.1.jar:4.1.104.Final]
#011at io.netty.handler.codec.http2.DefaultHttp2FrameReader$2.processFragment(DefaultHttp2FrameReader.java:476) ~[netty-codec-http2-4.1.jar:4.1.104.Final]
#011at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readHeadersFrame(DefaultHttp2FrameReader.java:484) ~[netty-codec-http2-4.1.jar:4.1.104.Final]
#011at io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:253) ~[netty-codec-http2-4.1.jar:4.1.104.Final]
#011at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:159) ~[netty-codec-http2-4.1.jar:4.1.104.Final]
#011at io.netty.handler.codec.http2.Http2InboundFrameLogger.readFrame(Http2InboundFrameLogger.java:41) ~[netty-codec-http2-4.1.jar:4.1.104.Final]
#011at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:188) ~[netty-codec-http2-4.1.jar:4.1.104.Final]
#011at io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:393) ~[netty-codec-http2-4.1.jar:4.1.104.Final]
#011at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:453) ~[netty-codec-http2-4.1.jar:4.1.104.Final]
#011at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) ~[netty-codec-4.1.jar:4.1.104.Final]
#011at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) ~[netty-codec-4.1.jar:4.1.104.Final]
#011at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) ~[netty-codec-4.1.jar:4.1.104.Final]
#011at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.jar:4.1.104.Final]
#011at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.jar:4.1.104.Final]
#011at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.jar:4.1.104.Final]
#011at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.jar:4.1.104.Final]
#011at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[netty-transport-4.1.jar:4.1.104.Final]
#011at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.jar:4.1.104.Final]
#011at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.jar:4.1.104.Final]
#011at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) ~[netty-transport-classes-epoll-4.1.jar:4.1.104.Final]
#011at io.netty.channel.epoll.EpollDomainSocketChannel$EpollDomainUnsafe.epollInReady(EpollDomainSocketChannel.java:140) ~[netty-transport-classes-epoll-4.1.jar:4.1.104.Final]
#011at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509) ~[netty-transport-classes-epoll-4.1.jar:4.1.104.Final]
#011at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407) ~[netty-transport-classes-epoll-4.1.jar:4.1.104.Final]
#011at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.jar:4.1.104.Final]
#011at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.jar:4.1.104.Final]
#011at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.jar:4.1.104.Final]
@idelpivnitskiy
Copy link

@bswami50 this method was implemented in #9979 and included in v1.55.1 or above

@bswami50
Copy link
Author

Thanks for the pointer. Feel free to close this issue.

@ejona86 ejona86 closed this as completed Jan 20, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 19, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants