apache / apache/arrow-julia

Invalid `Arrow.Table` bytes result in an internal failure

Open
#231 0 comments 0 reactions 0 assignees View on GitHub
bug
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.