-
Notifications
You must be signed in to change notification settings - Fork 4.1k
[Go][Parquet] Reading a parquet file with a nested field that is null for all records panics when using Go 1.21.1 #37712
Copy link
Copy link
Closed
Description
Describe the bug, including details regarding any error messages, version, and platform.
When reading Parquet files containing a nested field that is null for all records, it panics when using go 1.21.1 but not when using go 1.20.8.
This is a small reproducible case:
https://github.com/chelseajonesr/rfarrow/blob/f7bef4585eeb4d7582014bc54b0fa7092651f774/panic_test.go#L13
The panic:
panic: runtime error: slice bounds out of range [:5] with capacity 0
goroutine 15 [running]:
github.com/apache/arrow/go/v13/parquet/internal/encoding.(*PlainByteArrayDecoder).DecodeSpaced(0x0?, {0x0?, 0x14000307ce8?, 0x103398720?}, 0x103d2ff20?, {0x14000140980?, 0x100307c01?, 0x2?}, 0x400010000001f?)
/Users/chelseajones/go/pkg/mod/github.com/apache/arrow/go/[email protected]/parquet/internal/encoding/byte_array_decoder.go:83 +0x130
github.com/apache/arrow/go/v13/parquet/file.(*byteArrayRecordReader).ReadValuesSpaced(0x1400017eb00, 0x0, 0x20?)
/Users/chelseajones/go/pkg/mod/github.com/apache/arrow/go/[email protected]/parquet/file/record_reader.go:841 +0x134
github.com/apache/arrow/go/v13/parquet/file.(*recordReader).ReadRecordData(0x14000103260, 0x1)
/Users/chelseajones/go/pkg/mod/github.com/apache/arrow/go/[email protected]/parquet/file/record_reader.go:548 +0x288
github.com/apache/arrow/go/v13/parquet/file.(*recordReader).ReadRecords(0x14000103260, 0x1)
/Users/chelseajones/go/pkg/mod/github.com/apache/arrow/go/[email protected]/parquet/file/record_reader.go:632 +0x32c
github.com/apache/arrow/go/v13/parquet/pqarrow.(*leafReader).LoadBatch(0x140001032c0, 0x1)
/Users/chelseajones/go/pkg/mod/github.com/apache/arrow/go/[email protected]/parquet/pqarrow/column_readers.go:103 +0xd8
github.com/apache/arrow/go/v13/parquet/pqarrow.(*structReader).LoadBatch.func1()
/Users/chelseajones/go/pkg/mod/github.com/apache/arrow/go/[email protected]/parquet/pqarrow/column_readers.go:241 +0x30
golang.org/x/sync/errgroup.(*Group).Go.func1()
/Users/chelseajones/go/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:75 +0x58
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 13
/Users/chelseajones/go/pkg/mod/golang.org/x/[email protected]/errgroup/errgroup.go:72 +0x98
Component(s)
Go, Parquet
Reactions are currently unavailable