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

morrysnow pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-3.1 by this push:
     new d5d96da3e80 branch-3.1: [fix](schema-change) Fix null new tablet when 
cleaning up sc job on failure #53952 (#54065)
d5d96da3e80 is described below

commit d5d96da3e80406ecbe2ef83e4273931b0c93fbac
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Jul 30 18:40:09 2025 +0800

    branch-3.1: [fix](schema-change) Fix null new tablet when cleaning up sc 
job on failure #53952 (#54065)
    
    Cherry-picked from #53952
    
    Co-authored-by: Siyang Tang <[email protected]>
---
 be/src/agent/task_worker_pool.cpp        | 2 +-
 be/src/cloud/cloud_schema_change_job.cpp | 5 ++++-
 be/src/cloud/cloud_schema_change_job.h   | 2 +-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/be/src/agent/task_worker_pool.cpp 
b/be/src/agent/task_worker_pool.cpp
index b9922c12718..55975ddd1fb 100644
--- a/be/src/agent/task_worker_pool.cpp
+++ b/be/src/agent/task_worker_pool.cpp
@@ -296,7 +296,7 @@ void alter_cloud_tablet(CloudStorageEngine& engine, const 
TAgentTaskRequest& age
                 job.process_alter_tablet(agent_task_req.alter_tablet_req_v2),
                 [&](const doris::Exception& ex) {
                     
DorisMetrics::instance()->create_rollup_requests_failed->increment(1);
-                    job.clean_up_on_failed();
+                    job.clean_up_on_failure();
                 });
         return Status::OK();
     }();
diff --git a/be/src/cloud/cloud_schema_change_job.cpp 
b/be/src/cloud/cloud_schema_change_job.cpp
index 405dcbe1a0d..9e8d3f85a08 100644
--- a/be/src/cloud/cloud_schema_change_job.cpp
+++ b/be/src/cloud/cloud_schema_change_job.cpp
@@ -532,7 +532,10 @@ Status 
CloudSchemaChangeJob::_process_delete_bitmap(int64_t alter_version,
     return Status::OK();
 }
 
-void CloudSchemaChangeJob::clean_up_on_failed() {
+void CloudSchemaChangeJob::clean_up_on_failure() {
+    if (_new_tablet == nullptr) {
+        return;
+    }
     if (_new_tablet->keys_type() == KeysType::UNIQUE_KEYS &&
         _new_tablet->enable_unique_key_merge_on_write()) {
         _cloud_storage_engine.meta_mgr().remove_delete_bitmap_update_lock(
diff --git a/be/src/cloud/cloud_schema_change_job.h 
b/be/src/cloud/cloud_schema_change_job.h
index 2a33443137e..2f49f3eab6d 100644
--- a/be/src/cloud/cloud_schema_change_job.h
+++ b/be/src/cloud/cloud_schema_change_job.h
@@ -36,7 +36,7 @@ public:
     // This method is idempotent for a same request.
     Status process_alter_tablet(const TAlterTabletReqV2& request);
 
-    void clean_up_on_failed();
+    void clean_up_on_failure();
 
 private:
     Status _convert_historical_rowsets(const SchemaChangeParams& sc_params,


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to