-
Notifications
You must be signed in to change notification settings - Fork 9
Description
Version: 25.8.12.20747.altinityantalya
Description
Several tests under /iceberg/iceberg cache are failing on Antalya 25.8 (x86).
The failures started in Antalya 25.3.3.20183 due to a regression in how Parquet metadata cache ProfileEvents are emitted.
While the same test passes in earlier Antalya 25.3 builds, starting from 25.3.3.20183 the ParquetMetaDataCacheHits ProfileEvent is no longer present in system.query_log during Iceberg database engine queries, even when input_format_parquet_use_metadata_cache = 1 and Parquet files are accessed.
This behavior breaks the expected SRS contract for Parquet metadata caching and causes the Iceberg cache suite to fail consistently in newer Antalya releases.
Steps to Reproduce
Option 1: Reproduce via automation
The failing test can be reproduced by running the Iceberg regression suite with the following command:
python3 -u iceberg/regression.py \
--only "/iceberg/iceberg cache/rest catalog/iceberg database engine/cache/*" \
--local \
--clickhouse docker://altinity/clickhouse-server:25.8.12.20747.altinityantalya \
--clickhouse-version 25.8.12.20747 \
--pause-on-fail "/iceberg/iceberg cache/rest catalog/iceberg database engine/cache/"The execution will pause immediately after the failure, allowing direct inspection of the environment and investigation using system.query_log.
Option 2: Manual reproduction
The issue can also be reproduced manually by following the step-by-step instructions described in the comment below (Iceberg + Parquet metadata cache setup and query execution).
Analysis
This failure is caused by a regression in Parquet metadata cache accounting for the Iceberg database engine path.
The test validates the SRS requirement that, when input_format_parquet_use_metadata_cache = 1, ClickHouse must:
- cache Parquet file metadata when querying data from remote object storage, and
- emit the
ParquetMetaDataCacheHitsProfileEvent insystem.query_log.
The investigation shows a clear behavioral change between Antalya versions:
- In Antalya 25.3.3.20143, the Iceberg database engine consistently emits
ParquetMetaDataCacheHits > 0for the warm runs of the same query. - Starting from Antalya 25.3.3.20183 and continuing in Antalya 25.8, the same Iceberg queries no longer emit
ParquetMetaDataCacheHitsat all (the event does not appear even as a key inProfileEvents), despite:input_format_parquet_use_metadata_cachebeing enabled,- Parquet files being accessed and decoded, and
- multiple warm executions of the same query.
This indicates that the Iceberg database engine path in newer Antalya versions either bypasses the Parquet metadata cache or no longer propagates its cache ProfileEvents to system.query_log.
As a result, the test failure is deterministic and reflects a real regression in Parquet metadata cache behavior or telemetry, not a test instability.
Failing tests
✘ [ Fail ] '/iceberg/iceberg cache/rest catalog/iceberg database engine/cache' (35s 112ms)
✘ [ Fail ] '/iceberg/iceberg cache/rest catalog/iceberg database engine' (35s 114ms)
✘ [ Fail ] '/iceberg/iceberg cache/rest catalog/icebergS3 table function/cache' (43s 44ms)
✘ [ Fail ] '/iceberg/iceberg cache/rest catalog/icebergS3 table function' (43s 45ms)
✘ [ Fail ] '/iceberg/iceberg cache/rest catalog' (1m 22s)
✘ [ Fail ] '/iceberg/iceberg cache/glue catalog/iceberg database engine/cache' (32s 488ms)
✘ [ Fail ] '/iceberg/iceberg cache/glue catalog/iceberg database engine' (32s 489ms)
✘ [ Fail ] '/iceberg/iceberg cache/glue catalog/icebergS3 table function/cache' (44s 566ms)
✘ [ Fail ] '/iceberg/iceberg cache/glue catalog/icebergS3 table function' (44s 567ms)
✘ [ Fail ] '/iceberg/iceberg cache/glue catalog' (1m 20s)
✘ [ Fail ] '/iceberg/iceberg cache' (2m 42s)CI Run
https://github.com/Altinity/clickhouse-regression/actions/runs/20752126541/job/59639226319