farshad
06/07/2026, 6:38 AMRocky
06/07/2026, 6:38 AMSIGFPE (Floating Point Exception) inside the BitShuffle decompression logic (bshuf_default_block_size_avx2) during compaction (TabletUpdates::_do_compaction).
Root Cause Analysis
A SIGFPE at this specific location typically indicates a division-by-zero error within the BitShuffle library. This happens when the library attempts to calculate the processing block size by dividing a target buffer size by the element size of the column data.
If the element size passed to the decoder is 0, the process crashes. This can occur due to:
1. Metadata Corruption: The segment file's footer or the column metadata on disk has been corrupted, leading the BE to read an element size of 0.
2. Schema/Type Inconsistency: A bug in a specific StarRocks version where certain data types (often complex types like ARRAY or variable-length types) are handled incorrectly during the compaction merge phase.
3. Instruction Set Issues: While less likely for SIGFPE, if the environment (e.g., Docker/VM) incorrectly reports AVX2 support or has an incompatible CPU, SIMD-optimized math libraries can sometimes behave unpredictably.
Recommended Steps
1. Identify the problematic Tablet
Check the <http://be.INFO|be.INFO> or be.out log file immediately preceding the crash. Look for a line similar to:
[tablet_updates.cpp:...] start to do compaction for tablet: <TABLET_ID>
Identifying the TABLET_ID allows you to pinpoint which table and data partition are causing the crash.
2. Check for Metadata Inconsistency
Once you have the TABLET_ID, run the following in your MySQL client:
sql
ADMIN SHOW REPLICA STATUS FROM <table_name> WHERE TabletId = <TABLET_ID>;
-- Verify if the replica is healthy and check its version.
You can also try to force a check on the tablet:
sql
ADMIN CHECK TABLET (<TABLET_ID>);
3. Workaround: Disable BitShuffle (If applicable)
If this is a recurring issue on a specific table and you can recreate it, try using a different encoding (like PLAIN or LZ4 without BitShuffle) for numeric columns. BitShuffle is often the default for integers/floats.
4. Version & Environment
* Upgrade: If you are on an older version (e.g., 2.x or early 3.x), this might be a known bug in the storage engine's metadata handling. Check if there is a newer patch release.
* CPU Compatibility: Ensure your BE nodes are running on CPUs that fully support AVX2. If you are mixing different CPU architectures in one cluster, this is not recommended.
Next steps:
If the crash persists after identifying and repairing the problematic tablet, please provide your StarRocks version (SELECT current_version();) and the table schema to help narrow down if this is a specific data-type bug.
References
• faq/Deploy_faq.md
• faq/Others.md
• developers/build-starrocks/Build_in_docker.md
• sql-reference/sql-functions/hash-functions/xx_hash3_64.md
• sql-reference/sql-functions/bit-functions/bit_shift_right_logical.md
• sql-reference/sql-functions/bitmap-functions/bitmap_hash64.md
• sql-reference/sql-functions/bit-functions/bit_shift_right.md
• administration/Meta_recovery.md