Skip to content

25.8.16 Stable: Add guard for local data lakes#1530

Merged
zvonand merged 5 commits intoreleases/25.8.16from
fix/25.8.16/add-local-data-lake-guard
Mar 18, 2026
Merged

25.8.16 Stable: Add guard for local data lakes#1530
zvonand merged 5 commits intoreleases/25.8.16from
fix/25.8.16/add-local-data-lake-guard

Conversation

@zvonand
Copy link
Collaborator

@zvonand zvonand commented Mar 16, 2026

Changelog category (leave one):

  • Critical Bug Fix (crash, data loss, RBAC) or LOGICAL_ERROR

Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):

Add setting allow_local_data_lakes. Off by default.

CI/CD Options

Exclude tests:

  • Fast test
  • Integration Tests
  • Stateless tests
  • Stateful tests
  • Performance tests
  • All with ASAN
  • All with TSAN
  • All with MSAN
  • All with UBSAN
  • All with Coverage
  • All with Aarch64
  • All Regression
  • Disable CI Cache

Regression jobs to run:

  • Fast suites (mostly <1h)
  • Aggregate Functions (2h)
  • Alter (1.5h)
  • Benchmark (30m)
  • ClickHouse Keeper (1h)
  • Iceberg (2h)
  • LDAP (1h)
  • Parquet (1.5h)
  • RBAC (1.5h)
  • SSL Server (1h)
  • S3 (2h)
  • Tiered Storage (2h)

@zvonand zvonand added 25.8.16 25.8.16 Stable 25.8.16.10002 labels Mar 16, 2026
@github-actions
Copy link

github-actions bot commented Mar 16, 2026

Workflow [PR], commit [9a74a55]

@zvonand zvonand merged commit 7831f2b into releases/25.8.16 Mar 18, 2026
309 of 314 checks passed
@alsugiliazova
Copy link
Member

alsugiliazova commented Mar 19, 2026

Audit Report for PR #1530

Confirmed Defects

Low: Incorrect previous_value in SettingsChangesHistory for allow_local_data_lakes

  • Impact: Users with compatibility set to a version older than 25.8.16.10002 will have local data lakes remain disabled, even though in those older versions the feature was implicitly allowed (no guard existed).
  • Anchor: src/Core/SettingsChangesHistory.cpp / addSettingsChanges(..., "25.8.16.10002", {...})
  • Trigger: Set SET compatibility = '25.8.13.10001' (or any version < 25.8.16.10002) and attempt CREATE TABLE ... ENGINE = IcebergLocal(...) or icebergLocal(...).
  • Why defect: applyCompatibilitySetting() iterates versions higher than the compatibility version and sets each affected setting to previous_value. For allow_local_data_lakes, previous_value was set to false. Before this PR, local data lakes had no guard—they were implicitly allowed. The correct previous_value for backward compatibility is true.
  • Fix direction: Change previous_value to true: {"allow_local_data_lakes", true, false, "..."}.
  • Regression test direction: Add test with compatibility set to pre-25.8.16.10002 version; verify IcebergLocal/deltaLakeLocal work without explicit allow_local_data_lakes.
  • Subsystem: Core/Settings compatibility.
  • Blast radius: Users relying on compatibility for backward compatibility.

Code evidence:

// src/Core/SettingsChangesHistory.cpp:41-43
addSettingsChanges(settings_changes_history, "25.8.16.10002",
{
   {"allow_local_data_lakes", false, false, "New setting to guard local data lake engines and table functions"},
});

@alsugiliazova
Copy link
Member

PR #1530 CI Verification Report

CI Results: 224 success, 2 failures, 2 errors, 21 BROKEN

Failures (2)

# Suite Error Related to PR Flakiness (cidb, 90d)
1 Grype Scan (clickhouse-server altinitystable-alpine) 1 high/critical CVE (CVE-2026-2673) No — container image security scan N/A
2 Grype Scan (clickhouse-server altinitytest-alpine) 1 high/critical CVE (CVE-2026-2673) No — container image security scan N/A

Errors (2)

# Suite Error Related to PR
1 Regression aarch64 clickhouse_keeper_no_ssl_2 Job did not complete No — infrastructure
2 Regression aarch64 session_timezone Job did not complete No — infrastructure

BROKEN Tests (21) — All Known/Flaky, None Related to PR

# Suite Test Annotation Flakiness (cidb, 90d)
1-5 Integration (amd_asan 1/6, amd_binary 1/5, amd_tsan 1/6, arm_binary 1/4, arm_binary 4/4) test_backup_restore_on_cluster/test_cancel_backup.py::test_shutdown_cancels_backup INVESTIGATE - NETLINK_ERROR 29 failures / 9 days
6-9 Integration (amd_asan 6/6, amd_binary 2/5, amd_tsan 6/6, arm_binary 1/4) test_backup_restore_on_cluster/test_different_versions.py::test_different_versions INVESTIGATE - NETLINK_ERROR 118 failures / 25 days
10 Integration (amd_tsan, 3/6) test_overcommit_tracker/test.py::test_user_overcommit INVESTIGATE - AssertionError on tsan 13 failures / 3 days
11-12 Integration (amd_binary 1/5, arm_binary 4/4) test_storage_s3_queue/test_0.py::test_streaming_to_many_views[ordered] KNOWN - Unstable upstream 85 failures / 19 days
13 Integration (arm_binary 4/4) test_dirty_pages_force_purge/test.py::test_dirty_pages_force_purge KNOWN: #1369 7 failures / 2 days
14-19 Stateless (amd_asan 2/2, amd_debug async, amd_ubsan par) 03441_deltalake_clickhouse_public_datasets / 03441_deltalake_clickhouse_virtual_columns INVESTIGATE - S3 sometimes unreachable 3 failures / 3 days
20 Stateless (amd_asan seq, amd_ubsan seq) 02700_s3_part_INT_MAX KNOWN - Memory limit exceeded Known
21 Stateless (amd_msan, seq, 1/2) 00024_random_counters INVESTIGATE - random timeout 6 failures / 5 days

Regression Tests: 128 passed, 2 errors

All 128 regression suites passed (both Release and Aarch64), including:

  • Iceberg (1, 2) — Aarch64 and Release — all passed
  • AggregateFunctions (1, 2, 3) — all passed
  • S3 (minio, aws_s3, gcs, azure) — all passed
  • S3Export (part, partition) — all passed
  • Parquet / ParquetS3 — all passed
  • TieredStorage (local, minio, s3amazon, s3gcs) — all passed
  • LDAP (authentication, external_user_directory, role_mapping) — all passed
  • RBAC (1, 2, 3) — all passed
  • SSLServer (1, 2, 3) — all passed
  • ClickHouseKeeper — all passed (except aarch64 no_ssl_2: job did not complete)
  • Alter (move, attach, replace) — all passed
  • Common suites (swarms, engines, functions, data_types, dns, kafka, kerberos, etc.) — all passed

2 regression errors were infrastructure issues (jobs did not complete), not test failures.

Conclusion

PR #1530 is verified.

@alsugiliazova alsugiliazova added the verified Verified by QA label Mar 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

25.8.16 25.8.16 Stable 25.8.16.10002 verified Verified by QA

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants