Invalid `Arrow.Table` bytes result in an internal failure
- Dominant language
- Julia
- Stars
- 312
- Forks
- 78
- PR merge metrics
- No merged PRs in 30d
Description
Arrow 1.6.2:
```julia
julia> Arrow.Table(UInt8[])
ERROR: type Nothing has no field fields
Stacktrace:
[1] getproperty(x::Nothing, f::Symbol)
@ Base ./Base.jl:33
[2] Arrow.Table(bytes::Vector{UInt8}, off::Int64, tlen::Nothing; convert::Bool)
@ Arrow ~/.julia/packages/Arrow/PQ5Mm/src/table.jl:300
[3] Table (repeats 2 times)
@ ~/.julia/packages/Arrow/PQ5Mm/src/table.jl:214 [inlined]
[4] top-level scope
@ REPL[8]:1
```
I encountered this error when attempting to read an `Arrow.Table` from an S3 bucket when the region wasn't properly specified. The data passed into `Arrow.Table` was similar to:
```
b"\nPermanentRedirectThe bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.bucket.s3.us-east-2.amazonaws.combucket......"
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at src/table.jl:300, where Arrow.Table(UInt8[]) produces the Nothing field error, and reproduce it with the empty bytes and XML error response shown in the issue. Determine the expected handling for invalid non-Arrow bytes; done should replace the internal failure with an appropriate user-facing error and cover the case with a regression test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- data-engineering
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100