diff --git a/be/src/cloud/cloud_cumulative_compaction.cpp b/be/src/cloud/cloud_cumulative_compaction.cpp index 2f092c27323a9e..96e06057e2bd85 100644 --- a/be/src/cloud/cloud_cumulative_compaction.cpp +++ b/be/src/cloud/cloud_cumulative_compaction.cpp @@ -48,7 +48,7 @@ CloudCumulativeCompaction::CloudCumulativeCompaction(CloudStorageEngine& engine, CloudCumulativeCompaction::~CloudCumulativeCompaction() = default; Status CloudCumulativeCompaction::prepare_compact() { - if (_tablet->tablet_state() != TABLET_RUNNING && + if (_tablet->tablet_state() != TABLET_RUNNING && config::enable_new_tablet_do_compaction && dynamic_cast(_tablet.get())->alter_version() == -1) { return Status::InternalError("invalid tablet state. tablet_id={}", _tablet->tablet_id()); } diff --git a/cloud/src/meta-service/meta_service_job.cpp b/cloud/src/meta-service/meta_service_job.cpp index 76e74b162b29d1..c7265a6670bc0f 100644 --- a/cloud/src/meta-service/meta_service_job.cpp +++ b/cloud/src/meta-service/meta_service_job.cpp @@ -51,9 +51,11 @@ static constexpr int SCHEMA_CHANGE_DELETE_BITMAP_LOCK_ID = -2; bool check_compaction_input_verions(const TabletCompactionJobPB& compaction, const TabletJobInfoPB& job_pb) { + if (!job_pb.schema_change().has_alter_version()) return true; DCHECK_EQ(compaction.input_versions_size(), 2) << proto_to_json(compaction); DCHECK_LE(compaction.input_versions(0), compaction.input_versions(1)) << proto_to_json(compaction); + int64_t alter_version = job_pb.schema_change().alter_version(); return (compaction.type() == TabletCompactionJobPB_CompactionType_BASE && compaction.input_versions(1) <= alter_version) || @@ -316,7 +318,8 @@ void start_schema_change_job(MetaServiceCode& code, std::string& msg, std::strin err = txn->get(job_key, &job_val); if (err == TxnErrorCode::TXN_OK) { job_pb.ParseFromString(job_val); - if (job_pb.has_schema_change() && job_pb.schema_change().id() == schema_change.id() && + if (job_pb.has_schema_change() && job_pb.schema_change().has_alter_version() && + job_pb.schema_change().id() == schema_change.id() && job_pb.schema_change().initiator() == schema_change.initiator()) { response->set_alter_version(job_pb.schema_change().alter_version()); return;