-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add test data for RLE with bit_width == 0 #57
Conversation
bad_data/README.md
Outdated
@@ -22,3 +22,5 @@ These are files used for reproducing various bugs that have been reported. | |||
|
|||
* PARQUET-1481.parquet: tests a case where a schema Thrift value has been | |||
corrupted | |||
|
|||
* GH_43605.parquet: In Go, file reader goroutine crashed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Naming isn't terrific as it doesn't say which GH repo this is in. Perhaps ARROW-GH-43605.parquet
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree, it is done.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot @don4get
@mapleFU Does this look ok to you? |
Sorry I just back home I guess we can use same file as previous testing, let me read and check it |
bad_data/README.md
Outdated
@@ -22,3 +22,5 @@ These are files used for reproducing various bugs that have been reported. | |||
|
|||
* PARQUET-1481.parquet: tests a case where a schema Thrift value has been | |||
corrupted | |||
|
|||
* ARROW-GH-43605.parquet: In Go, file reader goroutine crashed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Personally I think we should describe more about why this causing crashed, like footer corrupt, page header metadata, invalid content like page size less than metadata described, less column chunk than in metadata description etc. We have lots of "corruput file", but the reason would be differ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you give me some help to know which part of the file is corrupted? I am not expert enough to know why the file is corrupt. I only know it is generated with a specific version of polars, as described in this PR: apache/arrow#43607 (comment)
Latest version of polars does not cause the issue anymore.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wait a minute, I'll test this on my local pc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Emm I don't know, arrow-c++ can read this file, emm...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If arrow-cpp manages to open it is nice, arrow-go crashed with this before related PR on arrow. Should I move this into valid data folder then?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The criterion should be: is it a valid Parquet file or not?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it's a valid Parquet file and the issue was a bug in Arrow Go preventing to read it, then it should go in data
. If it's an invalid Parquet file and the issue was that Arrow Go crashed instead of reporting a regular error, then it should go in bad_data
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll check this later
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See: #57 (comment)
Dictionary Rle page with RLE encoding bit-width is 0.
I finally catch this. This file has zero-sized dictionary bit-width. With diff:
The dictionary bit-width is 0 here in the output. |
abd050c
to
f061d72
Compare
@@ -30,3 +30,4 @@ These are files used for reproducing various bugs that have been reported. | |||
where decoded rep / def levels is less than num_values in page_header. | |||
* ARROW-GH-41317.parquet: test case of https://github.com/apache/arrow/issues/41317 | |||
where all columns have not the same size. | |||
* ARROW-GH-43605.parquet: dictionary index page uses rle encoding but 0 as rle bit-width. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll merge this first, but I don't know whether this is bad or corner of spec
Data to reproduce apache/arrow#43605.
It is used in this PR to test proper behavior:
apache/arrow#43607