Vijay Shekhawat
03/12/2026, 11:05 AMparquet_cache_aware_dict_decoder_enable (enabled by default) causes non-deterministic query results on Parquet files that use PLAIN_DICTIONARY encoding with PLAIN fallback -- which is standard behavior when PyArrow/Spark write Parquet with dictionary encoding and the dictionary exceeds the size threshold.
The symptom is that the same deterministic query (ORDER BY + LIMIT) returns different results on each execution, silently -- no errors or warnings. Tables with PLAIN-only encoding are not affected.
Workaround: Set parquet_cache_aware_dict_decoder_enable = false in be.conf and restart BEs.
This was reproduced on StarRocks 4.0.0 through 4.0.6 on ARM64 (GKE with C4A / Axion instances). We haven't verified x86 yet.
If anyone else runs into non-deterministic results on Iceberg/Parquet tables, this could be the cause. Full details and reproduction steps in the issue.Rocky
03/12/2026, 11:05 AMORDER BY + LIMIT) returning different results on each run without errors.
* Root Cause: The parquet_cache_aware_dict_decoder_enable setting (enabled by default) interacting with Parquet files using PLAIN_DICTIONARY encoding with a PLAIN fallback.
* Affected Versions: Reproduced on StarRocks 4.0.0 through 4.0.6 (specifically on ARM64).
* Immediate Workaround: Disable the feature by adding the following to your be.conf and restarting the BE:
conf
parquet_cache_aware_dict_decoder_enable = false
The engineering team will likely track this through the GitHub issue you've opened. Thanks again for contributing to the stability of StarRocks!
References
• administration/management/BE_configuration.md
• using_starrocks/caching/block_cache.md
• sql-reference/System_variable.md
• deployment/shared_data/feature-support-shared-data.md