apache / apache/arrow-java

NoSuchMethodError with gRPC Java 1.79.0

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

描述

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

We noticed `NoSuchMethodError`s with the gRPC Java 1.79.0 upgrade. It's because `ReadableBuffer.readBytes(ByteBuffer)` was dropped in https://github.com/grpc/grpc-java/commit/738782fb050ec94b9bf1c795cf2299b90a6ce327. It is used here: https://github.com/apache/arrow-java/blob/8e84e4c8bbe041f362690e4ea54280ec682dbb1f/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/GetReadableBuffer.java#L91

```
Caused by: java.lang.NoSuchMethodError: 'void io.grpc.internal.ReadableBuffer.readBytes(java.nio.ByteBuffer)'
at org.apache.arrow.flight.grpc.GetReadableBuffer.readIntoBuffer(GetReadableBuffer.java:91)
at org.apache.arrow.flight.ArrowMessage.frame(ArrowMessage.java:323)
at org.apache.arrow.flight.ArrowMessage$ArrowMessageHolderMarshaller.parse(ArrowMessage.java:575)
at org.apache.arrow.flight.ArrowMessage$ArrowMessageHolderMarshaller.parse(ArrowMessage.java:560)
at io.grpc.MethodDescriptor.parseResponse(MethodDescriptor.java:284)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInternal(ClientCallImpl.java:662)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInContext(ClientCallImpl.java:649)
```

贡献指南

打开贡献指南

调研方向

从 flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/GetReadableBuffer.java 的第 91 行开始,然后跟踪堆栈跟踪中显示的来自 ArrowMessage.frame 的调用。使用 gRPC Java 1.79.0 重现,并确认 Flight 路径不再引发 NoSuchMethodError;使用现有的 Flight 测试验证受影响的缓冲区处理。

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

评估

技术栈
grpc, java
领域
api, backend
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
描述清楚
新手友好度
35/100

把新 issue 发到你的邮箱

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