apache / apache/arrow-rs

Fuzz tests for Arrow/Parquet

Open
#5,332 13 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
3.6k
Forks
1.3k
Avg merge
2d 14h
Merged PRs (30d)
167

Description

I'm generally new to the code base but it looks like existing fuzz tests might be generating random data and making sure it can be read back, but we don't have any fuzz tests for malformed data. I think in the context of Rust the goal would be to avoid panics?

If this is accurate, I'd propose creating fuzz tests that check succeed as long as there is no panic. A beginning corpus [arrow-testing repo](https://github.com/apache/arrow-testing/tree/master/data/parquet/fuzzing) [2](https://github.com/apache/arrow-testing/tree/master/data/arrow-ipc-stream) for each file type.

A second step would be integrate with oss-fuzz ([Arrow C++](https://github.com/google/oss-fuzz/blob/master/projects/arrow/build.sh) already does so).

If this is of interest and i'm correct this isn't already done, I can try to see if I can prototype something.

Contributor guide

Open the contributing guide

Research direction

First inspect the repository's existing fuzz tests to confirm what inputs and failure conditions they cover. Review the arrow-testing corpora at data/parquet/fuzzing and data/arrow-ipc-stream, then compare the oss-fuzz Arrow C++ integration in projects/arrow/build.sh. Done means malformed Arrow and Parquet inputs are exercised without panics, with any OSS-Fuzz integration scope established.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
data, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.