-
Notifications
You must be signed in to change notification settings - Fork 28
Blosc/Blosc2 crash with variable-width strings #363
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
Conversation
79bb47e to
dc6eda7
Compare
|
Thanks for the issue report and the proposed test and fix. We aim at not patching vendored filters in this project, so this issue & patch would need to be proposed first to upstream projects: HDF5-Blosc2 & hdf5-blosc. BTW, the hdf5plugin/lib/HDF5-Blosc2/src/blosc2_filter.c Lines 133 to 134 in 5fa76ae
So I'm not sure this kind of data is supported by blosc/blosc2 filters. attn @FrancescAlted |
Yes, fully agree. What would you like to do of this PR until then?
To me this feels like a quirk of |
t20100
left a comment
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.
Let's go for option 2: revert the upstream fix and merge this PR as is, to add the tests for the string types for all other compression algorithms, with @pytest.skip for the blosc and blosc2 tests.
This reverts commit af261ac.
t20100
left a comment
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.
LGTM, thanks!
Blosc and Blosc2 crash when faced with variable-width strings, both the legacy object strings or the new NpyStrings a.k.a. StringDType.
This is caused by an upstream bug. Pytables is also affected.
This PR:
Clearly, it should not be merged as is; the fixes should be applied in the upstream repos and a release should be issued.
I can see two options before that happens:
@pytest.skipfor the blosc and blosc2 tests. In a follow-up, update the upstream libraries.Reproducer
Full reproducer: