Enable cas s3 stress - #2292
Conversation
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>
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>
|
Reviewed the CI wiring against Wiring checks out: None of the three findings below blocks the PR. #1 is the one worth doing: it keeps a single dump path across all stress lanes and reuses the technique the repo already has for this exact problem. #2 loses the RustFS log every time a CAS job dies before the end of the script; #3 is cosmetic. 1.
2. Collecting it outside the container — in 3. Dead branch. |
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_ubsanstress package; UBSan is already inamd_asan_ubsan.Wiring is shared across those jobs:
USE_CAS_S3_STORAGE_FOR_MERGE_TREE=1. The"cas s3"check must run before the plain"s3"substring check, otherwiseinstall.shwould still pick the S3 default policy.stress_runner.shstarts RustFS (MinIO OSS cannot enforceIf-Matchdeletes) and creates thehits/visitstables oncas_s3.clickhouse-testgets--cas-s3-storagesono-cas-storage/no-object-storage/no-s3-storagetests are skipped.clickhouse-clientwhile the server still owns the CAS root (clickhouse-localstarts 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):
Changelog entry (a user-readable short description of the changes that goes into CHANGELOG.md):
Not required.