Yukang-Lian opened a new pull request, #64312:
URL: https://github.com/apache/doris/pull/64312
### What problem does this PR solve?
Issue Number: None
Related PR: #62272
Problem Summary: Cloud schema change retries could keep registering a stale
alter version after a cross-V1 compaction conflict. The retry path synced the
base tablet only up to the request alter version, so a local base tablet whose
max version already exceeded that request could skip refreshing newer visible
rowsets. When a new schema-change tablet had a compaction rowset crossing the
stale V1, every retry reused that V1 and eventually exhausted the retry limit.
This change refreshes the base tablet without capping sync by the request
alter version before computing schema change V1, allowing retries to register a
fresh boundary. It also adds a docker regression case that blocks schema
change, creates a cross-V1 retry, injects stale local max-version state for
query-version sync, and verifies the retry finishes after the base tablet is
refreshed.
### Release note
Fix cloud schema change retry stale V1 failure.
### Check List (For Author)
- Test: Unit Test / Regression test / Build / Format
- ./run-be-ut.sh --run --filter=CloudSchemaChangeJobTest.*
- ./build.sh --be
- ./build.sh --cloud
- docker build -f docker/runtime/doris-compose/Dockerfile -t
local/doris:sc_v1_refresh_20260609 .
- ./run-regression-test.sh --run -runMode cloud --image
local/doris:sc_v1_refresh_20260609 -d
cloud_p1/schema_change/compaction_optimization -s
test_sc_compaction_cross_v1_stale_base_refresh
- export PATH="/mnt/disk2/lianyukang/ldb_toolchain_v16/bin":$PATH;
build-support/clang-format.sh be/src/cloud/cloud_schema_change_job.cpp
be/src/cloud/cloud_tablet.cpp be/test/cloud/cloud_schema_change_job_test.cpp
- export PATH="/mnt/disk2/lianyukang/ldb_toolchain_v16/bin":$PATH;
build-support/check-format.sh be/src/cloud/cloud_schema_change_job.cpp
be/src/cloud/cloud_tablet.cpp be/test/cloud/cloud_schema_change_job_test.cpp
- git diff --check
- Behavior changed: Yes. Cloud schema change retry recomputes V1 from the
refreshed base tablet instead of reusing a stale request alter version.
- Does this need documentation: No
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]