Skip to content

branch-4.1: [fix](cloud) Release warm-up destination on initialization failure #67924 - #68107

Open
bobhan1 wants to merge 1 commit into
apache:branch-4.1from
bobhan1:backport/4.1/pr-67924-warmup-init-failure
Open

bobhan1 wants to merge 1 commit into
apache:branch-4.1from
bobhan1:backport/4.1/pr-67924-warmup-init-failure

Conversation

@bobhan1

@bobhan1 bobhan1 commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Backport #67924 to branch-4.1 (source commit f0affa9).

When tablet-batch initialization fails, release the warm-up destination registration and persist the error. ONCE jobs become CANCELLED; PERIODIC jobs remain PENDING and retry at their existing interval. No BE cleanup RPC is sent before a BE job has started.

Conflict resolution

Production code applied unchanged. The only conflict was in CloudWarmUpJobTest: master migrated this class from JUnit 4 to JUnit 5 in #67396 (050442d), while branch-4.1 retains JUnit 4. Keep the target framework and express the two EnumSource tests as four independent JUnit 4 tests, preserving ONCE/PERIODIC failure and success coverage.

Validation

  • Passed ./run-fe-ut.sh --run 'org.apache.doris.cloud.CloudWarmUpJobTest,org.apache.doris.cloud.CacheHotspotManagerSchedulerTest,org.apache.doris.cloud.cache.CacheHotspotManagerTest': 30 tests, zero failures/errors/skips; BUILD SUCCESS.
  • Passed git diff --check upstream/branch-4.1...HEAD.
  • No live cloud-cluster regression or separate full build was run.

Release note

Release the destination compute group when cloud warm-up initialization fails, allowing subsequent warm-up jobs to proceed while preserving periodic retry scheduling.

…pache#67924)

A cloud warm-up job registers its destination compute group before
initializing tablet batches. If initialization throws, the outer `run()`
handler only logs the exception: the job stays `PENDING` and keeps the
destination registration. Other ONCE/PERIODIC jobs targeting that group
cannot start. A later successful retry can recover the original job, but
repeated initialization failures can block the group indefinitely
because the warm-up timeout only applies to `RUNNING` jobs.

Catch initialization failures before transitioning to `RUNNING` and
reuse `cancel(..., false)` to persist the error and release the
destination registration. ONCE jobs become `CANCELLED`; PERIODIC jobs
remain `PENDING` and retry at their existing interval. Initialization
has not submitted work to BEs, so this path does not send cleanup RPCs.
Successful initialization retains the destination registration as
before.

Release the destination compute group when cloud warm-up initialization
fails, allowing subsequent warm-up jobs to proceed. Report the
initialization error and preserve periodic retry scheduling.

(cherry picked from commit f0affa9)
@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@bobhan1
bobhan1 marked this pull request as ready for review September 17, 2026 03:45
@bobhan1
bobhan1 requested a review from yiguolei as a code owner September 17, 2026 03:45
@bobhan1

bobhan1 commented Sep 17, 2026

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 100.00% (19/19) 🎉
Increment coverage report
Complete coverage report

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