From 31ce1d0e154c14b4515aefa61517959a5c0ca85c Mon Sep 17 00:00:00 2001 From: Kaijie Chen Date: Thu, 24 Jul 2025 19:48:27 +0800 Subject: [PATCH 1/2] [fix](warmup) fix warm up jobs missing last batch --- be/src/cloud/cloud_warm_up_manager.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/be/src/cloud/cloud_warm_up_manager.cpp b/be/src/cloud/cloud_warm_up_manager.cpp index c0d1462cbc3eab..b8ebb99a4e6c3d 100644 --- a/be/src/cloud/cloud_warm_up_manager.cpp +++ b/be/src/cloud/cloud_warm_up_manager.cpp @@ -178,7 +178,6 @@ void CloudWarmUpManager::handle_jobs() { if (_closed) break; if (!_pending_job_metas.empty()) { cur_job = _pending_job_metas.front(); - _pending_job_metas.pop_front(); } } @@ -276,6 +275,13 @@ void CloudWarmUpManager::handle_jobs() { { std::unique_lock lock(_mtx); _finish_job.push_back(cur_job); + // _pending_job_metas may be cleared by a CLEAR_JOB request + // so we need to check it again. + // We can not call pop_front before the job is finished, + // because GET_CURRENT_JOB_STATE_AND_LEASE is relying on the pending job size. + if (!_pending_job_metas.empty()) { + _pending_job_metas.pop_front(); + } } } #endif From e2ee6f8b7ad411a8b529745518893230d90bb119 Mon Sep 17 00:00:00 2001 From: Kaijie Chen Date: Thu, 24 Jul 2025 19:56:24 +0800 Subject: [PATCH 2/2] move comments --- be/src/cloud/cloud_warm_up_manager.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/be/src/cloud/cloud_warm_up_manager.cpp b/be/src/cloud/cloud_warm_up_manager.cpp index b8ebb99a4e6c3d..bd661f46cb7837 100644 --- a/be/src/cloud/cloud_warm_up_manager.cpp +++ b/be/src/cloud/cloud_warm_up_manager.cpp @@ -277,9 +277,9 @@ void CloudWarmUpManager::handle_jobs() { _finish_job.push_back(cur_job); // _pending_job_metas may be cleared by a CLEAR_JOB request // so we need to check it again. - // We can not call pop_front before the job is finished, - // because GET_CURRENT_JOB_STATE_AND_LEASE is relying on the pending job size. if (!_pending_job_metas.empty()) { + // We can not call pop_front before the job is finished, + // because GET_CURRENT_JOB_STATE_AND_LEASE is relying on the pending job size. _pending_job_metas.pop_front(); } }