apache / apache/arrow-java

Arrow 13.0.0: org.apache.arrow.flight.FlightRuntimeException: CANCELLED: Failed to stream message

未关闭
#170 5 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Java
星标
94
派生
152
平均合并
3 天 16 小时
30 天内合并 PR
11

描述

### Describe the bug, including details regarding any error messages, version, and platform.

Hello All,

I would like to ask your help in the following issue I am facing with.

I have a Java and a Python application in different pods running on Kubernetes. A running Arrow Flight server is on the Python side.

Arrow version: 13.0.0 (everything worked fine with version 12.0.1)

**flightClient.handshake();** throws this error and the method is in an infinite loop:

```BASH
org.apache.arrow.flight.FlightRuntimeException: CANCELLED: Failed to stream message
at org.apache.arrow.flight.CallStatus.toRuntimeException(CallStatus.java:131)
at org.apache.arrow.flight.grpc.StatusUtils.fromGrpcRuntimeException(StatusUtils.java:164)
at org.apache.arrow.flight.grpc.StatusUtils.fromThrowable(StatusUtils.java:185)
at org.apache.arrow.flight.auth2.ClientHandshakeWrapper.doClientHandshake(ClientHandshakeWrapper.java:59)
at org.apache.arrow.flight.FlightClient.handshake(FlightClient.java:212)
at ...
Caused by: io.grpc.StatusRuntimeException: INTERNAL: Failed to frame message
at io.grpc.Status.asRuntimeException(Status.java:530)
at io.grpc.internal.MessageFramer.writePayload(MessageFramer.java:154)
at io.grpc.internal.AbstractStream.writeMessage(AbstractStream.java:66)
at io.grpc.internal.ForwardingClientStream.writeMessage(ForwardingClientStream.java:37)
at io.grpc.internal.DelayedStream.writeMessage(DelayedStream.java:278)
at io.grpc.internal.RetriableStream$1SendMessageEntry.runWith(RetriableStream.java:567)
at io.grpc.internal.RetriableStream.delayOrExecute(RetriableStream.java:544)
at io.grpc.internal.RetriableStream.sendMessage(RetriableStream.java:575)
at io.grpc.internal.ClientCallImpl.sendMessageInternal(ClientCallImpl.java:525)
at io.grpc.internal.ClientCallImpl.sendMessage(ClientCallImpl.java:513)
at io.grpc.ForwardingClientCall.sendMessage(ForwardingClientCall.java:37)
at io.grpc.stub.ClientCalls$CallToStreamObserverAdapter.onNext(ClientCalls.java:378)
at org.apache.arrow.flight.auth2.ClientHandshakeWrapper.doClientHandshake(ClientHandshakeWrapper.java:48)
... 21 more
Caused by: java.lang.UnsupportedOperationException: This is supposed to be overridden by subclasses.
at com.google.protobuf.GeneratedMessageV3.getUnknownFields(GeneratedMessageV3.java:302)
at org.apache.arrow.flight.impl.Flight$HandshakeRequest.getSerializedSize(Flight.java:328)
at io.grpc.protobuf.lite.ProtoInputStream.available(ProtoInputStream.java:108)
at io.grpc.internal.MessageFramer.getKnownLength(MessageFramer.java:208)
at io.grpc.internal.MessageFramer.writePayload(MessageFramer.java:138)
... 32 more
```

### Component(s)

Java

贡献指南

打开贡献指南

调研方向

从 org.apache.arrow.flight.auth2.ClientHandshakeWrapper.doClientHandshake 和 stack trace 中显示的生成的 Flight.HandshakeRequest 序列化开始。比较 Arrow 12.0.1 与 13.0.0 之间 Java 客户端的行为和依赖关系,并在 Kubernetes 中复现 Java 应用程序与 Python 应用程序之间的 handshake。完成标准是 flightClient.handshake() 在没有 framing error 或 infinite retry loop 的情况下完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
grpc, java, kubernetes, python
领域
api, distributed-systems
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。