This is an automated email from the ASF dual-hosted git repository.

dataroaring pushed a commit to branch 163_304
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/163_304 by this push:
     new 8bb63b3a828 (cloud) fix filecache warmup crash due to spurious wakeup
8bb63b3a828 is described below

commit 8bb63b3a8289be0a650a8b11046a8cc15f639713
Author: zhengyu <zhangzhen...@selectdb.com>
AuthorDate: Tue Mar 4 17:08:23 2025 +0800

    (cloud) fix filecache warmup crash due to spurious wakeup
    
    Signed-off-by: zhengyu <zhangzhen...@selectdb.com>
---
 be/src/cloud/cloud_warm_up_manager.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/be/src/cloud/cloud_warm_up_manager.cpp 
b/be/src/cloud/cloud_warm_up_manager.cpp
index 06d6df11dc4..58b5711d997 100644
--- a/be/src/cloud/cloud_warm_up_manager.cpp
+++ b/be/src/cloud/cloud_warm_up_manager.cpp
@@ -66,10 +66,17 @@ void CloudWarmUpManager::handle_jobs() {
         std::shared_ptr<JobMeta> cur_job = nullptr;
         {
             std::unique_lock lock(_mtx);
-            _cond.wait(lock, [this]() { return _closed || 
!_pending_job_metas.empty(); });
+            while (!_closed && _pending_job_metas.empty()) {
+                _cond.wait(lock);
+            }
             if (_closed) break;
             cur_job = _pending_job_metas.front();
         }
+
+        if (!cur_job) {
+            LOG_WARNING("Warm up job is null");
+            continue;
+        }
         for (int64_t tablet_id : cur_job->tablet_ids) {
             if (_cur_job_id == 0) { // The job is canceled
                 break;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to