Skip to content

Enable cas s3 stress - #2292

Open
alsugiliazova wants to merge 3 commits into
antalya-26.6from
enable-cas-s3-stress
Open

Enable cas s3 stress#2292
alsugiliazova wants to merge 3 commits into
antalya-26.6from
enable-cas-s3-stress

Conversation

@alsugiliazova

Copy link
Copy Markdown
Member

Stress already launches stateless tests at random in parallel (clickhouse-test --stress-tests, several clients, no result validation). Those jobs never installed a CAS default disk, so CAS was only covered by the dedicated stateless lanes.

This adds one CAS-S3 stress job per AMD sanitizer build, plus the non-sanitizer debug package:

  • Stress test (amd_debug, cas s3 storage)
  • Stress test (amd_asan_ubsan, cas s3 storage)
  • Stress test (amd_tsan, cas s3 storage)
  • Stress test (amd_msan, cas s3 storage)

There is no separate amd_ubsan stress package; UBSan is already in amd_asan_ubsan.

Wiring is shared across those jobs:

  • Job name sets USE_CAS_S3_STORAGE_FOR_MERGE_TREE=1. The "cas s3" check must run before the plain "s3" substring check, otherwise install.sh would still pick the S3 default policy.
  • stress_runner.sh starts RustFS (MinIO OSS cannot enforce If-Match deletes) and creates the hits/visits tables on cas_s3.
  • clickhouse-test gets --cas-s3-storage so no-cas-storage / no-object-storage / no-s3-storage tests are skipped.
  • Post-stress system-log dump goes through clickhouse-client while the server still owns the CAS root (clickhouse-local starts with uuid 0 and refuses the claim).

First runs may surface real CAS bugs under thread-fuzzer / fault injection; treat those as product signals, not just CI wiring.

Changelog category (leave one):

  • CI Fix or Improvement (changelog entry is not required)

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

Not required.

Alsu and others added 2 commits August 31, 2026 11:47
Stress already runs stateless tests at random in parallel; this lane
installs cas_s3 as the default MergeTree policy (RustFS, not MinIO)
so CAS is actually on that path. "cas s3" must win over the plain
"s3" substring or install.sh would still pick the S3 default.

Co-authored-by: Cursor <cursoragent@cursor.com>
Match the AMD stress sanitizer set plus the non-sanitizer debug
package, not only ASan.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

github-actions Bot commented Aug 31, 2026

Copy link
Copy Markdown

Workflow [PR], commit [6e29e68]

The stress job uploads only files found under `/test_output` and the server
log directory, but `start_rustfs` writes to `ci/tmp/rustfs.log`. RustFS is
the storage backend for the `cas_s3` policy, so its log is the only record
of pool-side failures such as `If-Match` mismatches or request saturation.
Copy it into `/test_output` compressed so it reaches the CI report.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants