Skip to content

[Bug] Arrow Flight SQL Jdbc driver fails with RST_STREAM on Doris 4.0.1 #59304

@mughilanand

Description

@mughilanand

Search before asking

  • I had searched in the issues and found no similar issues.

Version

Doris Version: 4.0.1
Doris Build Type: apache-doris-4.0.1-bin-x64
Flight SQL Jdbc Driver : flight-sql-jdbc-driver-17.0.0.jar and flight-sql-jdbc-driver-18.0.0.jar

What's Wrong?

I have an issue when connecting to Apache Doris 4.0.1 using the Arrow Flight SQL JDBC driver. When using the python adbc driver, the connection works as expected and able to execute queries successfully. However, when I try to connect using the Arrow Flight SQL JDBC driver ver17/18 the connection fails with an HTTP/2 RST_STREAM error.
Since the Python client works correctly, it looks like the Flight SQL service itself is up and running. This makes me think the issue may be related to a compatibility problem between Doris 4.0.1 and Arrow Flight SQL JDBC driver.

What You Expected?

Data should be accessible via jdbc call

How to Reproduce?

1.3 Fe Nodes with flight sql port enabled on 8070
2.5 Be Nodes with flight sql port enabled on 8050
3.flight-sql-jdbc-driver-17.0.0.jar using DBeaver/Penthaho
4.Jdbc Connection fails.

Error From Jdcb Client:

org.apache.arrow.flight.FlightRuntimeException: UNAVAILABLE: RST_STREAM closed stream. HTTP/2 error code: NO_ERROR
org.apache.arrow.flight.FlightRuntimeException: UNAVAILABLE: RST_STREAM closed stream. HTTP/2 error code: NO_ERROR
RST_STREAM closed stream. HTTP/2 error code: NO_ERROR

Error From Fe.log:

2025-12-22 05:26:21,031 INFO (replayer|120) [Env.replayJournal():3075] replayed journal id is 1508913, replay to journal id is 1508914
2025-12-22 05:26:22,446 INFO (replayer|120) [Env.replayJournal():3075] replayed journal id is 1508914, replay to journal id is 1508915
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] Dec 22, 2025 5:26:26 AM io.grpc.netty.NettyServerTransport notifyTerminated
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] INFO: Transport failed
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] io.netty.handler.codec.http2.Http2Exception: Stream 3 does not exist for inbound frame RST_STREAM, endOfStream = false
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.handler.codec.http2.Http2Exception.connectionError(Http2Exception.java:107)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.verifyStreamMayHaveExisted(DefaultHttp2ConnectionDecoder.java:696)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder$FrameReadListener.onRstStreamRead(DefaultHttp2ConnectionDecoder.java:455)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.handler.codec.http2.Http2InboundFrameLogger$1.onRstStreamRead(Http2InboundFrameLogger.java:78)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readRstStreamFrame(DefaultHttp2FrameReader.java:508)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:253)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:164)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.handler.codec.http2.Http2InboundFrameLogger.readFrame(Http2InboundFrameLogger.java:39)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:186)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:391)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:451)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:799)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:501)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:399)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234] at java.base/java.lang.Thread.run(Thread.java:840)
2025-12-22 05:26:26,804 ERROR (grpc-default-worker-ELG-3-8|120) [StreamEncoder.writeBytes():234]
2025-12-22 05:26:31,031 INFO (replayer|120) [Env.replayJournal():3075] replayed journal id is 1508915, replay to journal id is 1508916
2025-12-22 05:26:32,454 INFO (replayer|120) [Env.replayJournal():3075] replayed journal id is 1508916, replay to journal id is 1508917
2025-12-22 05:26:41,036 INFO (replayer|120) [Env.replayJournal():3075] replayed journal id is 1508917, replay to journal id is 1508918
2025-12-22 05:26:42,456 INFO (replayer|120) [Env.replayJournal():3075] replayed journal id is 1508918, replay to journal id is 1508919

Anything Else?

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions