-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Failing to create table with sstable_compression=ZstdCompressor
#22444
Comments
I think it's related to change come in as part of source available, but I could track it down myself as why |
@fruch - can we do a bisect to find out? It may be from the advanced compression, but it is strange (that was for networking, not for storage) |
i am able to reproduce with release build, but not with debug build. looking. |
This means that But no symbol in Hypothesis: |
it's related to the order of static variables. cooking a patch now. |
it is linked w/ whole-archive.
yeah, i concur with you. but i see there were some back and forth in this area. |
…fix a function Fixes a race condition where COMPRESSOR_NAME in zstd.cc could be initialized before compressor::namespace_prefix due to undefined global variable initialization order across translation units. This was causing ZstdCompressor to be unregistered in release builds, making it impossible to create tables with Zstd compression. Replace the global namespace_prefix variable with a function that returns the fully qualified compressor name. This ensures proper initialization order and fixes the registration of the ZstdCompressor. Fixes scylladb#22444 Signed-off-by: Kefu Chai <[email protected]>
I've found this issue with: it's a side test, use to check SCT machinery, and cassandra-stress working as expected. and we aren't running it regularly. we should have a test for this feature in test.py or in dtest |
I'd be very surprised if we don't and we indeed need. |
…fix a function Fixes a race condition where COMPRESSOR_NAME in zstd.cc could be initialized before compressor::namespace_prefix due to undefined global variable initialization order across translation units. This was causing ZstdCompressor to be unregistered in release builds, making it impossible to create tables with Zstd compression. Replace the global namespace_prefix variable with a function that returns the fully qualified compressor name. This ensures proper initialization order and fixes the registration of the ZstdCompressor. Fixes scylladb#22444 Signed-off-by: Kefu Chai <[email protected]>
…fix a function Fixes a race condition where COMPRESSOR_NAME in zstd.cc could be initialized before compressor::namespace_prefix due to undefined global variable initialization order across translation units. This was causing ZstdCompressor to be unregistered in release builds, making it impossible to create tables with Zstd compression. Replace the global namespace_prefix variable with a function that returns the fully qualified compressor name. This ensures proper initialization order and fixes the registration of the ZstdCompressor. Fixes scylladb#22444 Signed-off-by: Kefu Chai <[email protected]>
Scylla version
2025.1.0~dev-0.20250122.a8805c4fc184
with build-id3555be198546b70f36699ff8733c67420ba66881
creating a table with
WITH compression = {'sstable_compression': 'ZstdCompressor'}
fails on master:reproducer with dtest (seems like we don't have such test anywhere):
The text was updated successfully, but these errors were encountered: