[Bug]: Go SDK row coder encodes negative INT32 schema fields as 10 byte varints that Java and Python reject
维护者通常 1 天内回复
@Eliaaazzz 已经在做这个了。
开始于 2026年9月17日。
评估
这个 Issue 还没有评估数据。
描述
What happened?
The Go SDK reflection row coder encodes int32 struct fields with EncodeVarInt(rv.Int()), the signed 64 bit varint, so a negative value takes 10 bytes: -1 becomes ff ff ff ff ff ff ff ff ff 01 (sdks/go/pkg/beam/core/graph/coder/row_encoder.go, the reflect.Int32 case shared with the other int kinds).
The other SDKs encode the INT32 schema type as the varint of the unsigned 32 bit form of the value, 5 bytes at most:
- Java
VarIntCodercallsVarInt.encode(int), which masks with0xFFFFFFFFL, so-1isff ff ff ff 0f.VarInt.decodeIntthrowsvarint overflowfor the Go bytes because they decode to a negative long. - Python
VarInt32Coderwritesv & 0xFFFFFFFF(write_var_int32inslow_stream.py) andread_var_int32packs the decoded value withstruct.pack('<I', v), which raises for the negative value produced by the Go bytes.
So a Go row with a negative int32 field cannot be read by the Java or Python SDK. Positive values are unaffected, and Go can already read the 5 byte form because reflect.Value.SetInt truncates to 32 bits.
This is the INT32 counterpart of #40151 (INT16). Found while working on #39684.
Issue Priority
Priority: 2 (default / most bugs should be filed as P2)
Issue Components
- Component: Python SDK
- Component: Java SDK
- Component: Go SDK
- Component: Typescript SDK
- Component: IO connector
- Component: Beam YAML
- Component: Beam examples
- Component: Beam playground
- Component: Beam katas
- Component: Website
- Component: Infrastructure
- Component: Spark Runner
- Component: Flink Runner
- Component: Prism Runner
- Component: Twister2 Runner
- Component: Hazelcast Jet Runner
- Component: Google Cloud Dataflow Runner
- 主要语言
- Java
- 星标
- 8.7k
- 派生
- 4.8k
- 平均合并
- 2 天 12 小时
- 30 天内合并 PR
- 371
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/beam 的其他 Issue
-
awaiting triage bug P3
难度 1/5 1 小时以内 新手友好度 67/100
维护者通常 1 天内回复
-
[Bug]: [Python] WriteToJson silently rounds floats to 10 decimal places可能已有人在做 @Abhi2939 于 1 天前认领。 未关闭io P2 python yaml
难度 2/5 1-3 小时 新手友好度 62/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
apache/beam#39624 · 2 个 reaction ·
维护者通常 1 天内回复
-
[Bug]: PubsubIO used in batch incorrect batch cutoff size可能已有人在做 @1fanwang 于 78 天前认领。 未关闭bug io P3 pinned pubsub
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
build P3 sub-task
难度 1/5 1 小时以内 新手友好度 68/100
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 66/100
SasanLabs/VulnerableApp#912 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
desktop edt not responding
难度 2/5 1-3 小时 新手友好度 78/100
-
难度 2/5 1-3 小时 新手友好度 78/100
datafusion-contrib/StreamFusion#653 ·
维护者通常 1 天内回复
-
[Bug] Absolute row/column index 0 is ignored for images, hyperlinks and comments可能已有人在做 @fanOfSunny 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复