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 摘要。