fix storage_schema compat serialize & wrong multi_version_start & major rs checker hung
This commit is contained in:
@ -157,6 +157,7 @@ int ObChecksumValidator::get_table_compaction_info(
|
||||
ret = OB_SUCCESS;
|
||||
table_compaction_info.reset();
|
||||
table_compaction_info.table_id_ = table_id;
|
||||
LOG_TRACE("return init table compaction info", KR(ret));
|
||||
} else {
|
||||
LOG_WARN("fail to get val from hashmap", KR(ret), K(table_id));
|
||||
}
|
||||
@ -267,10 +268,6 @@ int ObChecksumValidator::validate_checksum(
|
||||
LOG_WARN("failed to validate index checksum", K(ret));
|
||||
} else if (OB_FAIL(validate_cross_cluster_checksum())) {
|
||||
LOG_WARN("failed to validate cross cluster checksum", K(ret));
|
||||
} else if (OB_FAIL(table_compaction_map_.set_refactored(table_id_, table_compaction_info_, true /*overwrite*/))) {
|
||||
LOG_WARN("fail to set refactored", KR(ret), K_(table_id), K_(table_compaction_info));
|
||||
} else {
|
||||
LOG_TRACE("success to validate table", KR(ret), K_(table_id), K_(table_compaction_info));
|
||||
}
|
||||
if (OB_FAIL(ret)) {
|
||||
} else if (table_compaction_info_.unfinish_index_cnt_ <= 0
|
||||
@ -291,6 +288,11 @@ int ObChecksumValidator::validate_checksum(
|
||||
}
|
||||
cur_tablet_ls_pair_array_.reuse();
|
||||
}
|
||||
if (FAILEDx(table_compaction_map_.set_refactored(table_id_, table_compaction_info_, true /*overwrite*/))) {
|
||||
LOG_WARN("fail to set refactored", KR(ret), K_(table_id), K_(table_compaction_info));
|
||||
} else {
|
||||
LOG_TRACE("success to validate table", KR(ret), K_(table_id), K_(table_compaction_info));
|
||||
}
|
||||
// do no clear table_compaction_info_ until validate next table
|
||||
replica_ckm_items_.reuse();
|
||||
schema_guard_ = nullptr;
|
||||
@ -798,7 +800,7 @@ int ObChecksumValidator::handle_index_table(
|
||||
LOG_WARN("failed to set", K(ret), K(data_compaction_info));
|
||||
}
|
||||
}
|
||||
LOG_TRACE("handle index table", KR(ret), K_(table_id), K_(table_compaction_info));
|
||||
LOG_TRACE("handle index table", KR(ret), K_(table_id), K_(table_compaction_info), K(data_compaction_info));
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@ -202,7 +202,7 @@ int ObMajorMergeProgressChecker::check_verification(
|
||||
if (OB_CHECKSUM_ERROR == ret) {
|
||||
LOG_ERROR("checksum error", KR(ret), K(table_id));
|
||||
} else if (OB_FREEZE_SERVICE_EPOCH_MISMATCH == ret) {
|
||||
LOG_INFO("freeze service epoch mismatch", KR(tmp_ret));
|
||||
LOG_INFO("freeze service epoch mismatch", KR(ret));
|
||||
}
|
||||
} else {
|
||||
LOG_WARN("failed to verify table", KR(tmp_ret), K(idx), K(table_id), KPC(table_compaction_info_ptr));
|
||||
@ -227,7 +227,7 @@ int ObMajorMergeProgressChecker::check_verification(
|
||||
break;
|
||||
}
|
||||
} // end of for
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_SUCC(ret)) { // record next untouched tablet
|
||||
table_ids_.batch_start_idx_ = idx + 1;
|
||||
} else {
|
||||
// record first failed table, need check in next loop
|
||||
@ -632,7 +632,7 @@ int ObMajorMergeProgressChecker::deal_with_rest_data_table()
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
bool exist_index_table = false;
|
||||
bool exist_finish_data_table = false;
|
||||
bool exist_data_table = false;
|
||||
if ((is_extra_check_round() && table_ids_.count() > 0 && table_ids_.count() < DEAL_REST_TABLE_CNT_THRESHOLD)
|
||||
|| REACH_TENANT_TIME_INTERVAL(DEAL_REST_TABLE_INTERVAL)) {
|
||||
ObTableCompactionInfo table_compaction_info;
|
||||
@ -646,12 +646,12 @@ int ObMajorMergeProgressChecker::deal_with_rest_data_table()
|
||||
} else if (table_compaction_info.is_index_table()) {
|
||||
LOG_TRACE("exist index table", K(ret), K(table_compaction_info));
|
||||
exist_index_table = true;
|
||||
break;
|
||||
} else if (table_compaction_info.is_compacted()) {
|
||||
exist_finish_data_table = true;
|
||||
} else {
|
||||
LOG_TRACE("exist data table", K(ret), K(table_compaction_info));
|
||||
exist_data_table = true;
|
||||
}
|
||||
} // end of for
|
||||
if (OB_SUCC(ret) && !exist_index_table && exist_finish_data_table) { // rest table are data table
|
||||
if (OB_SUCC(ret) && (exist_index_table != exist_data_table)) { // rest table are data table/ index table
|
||||
int tmp_ret = OB_SUCCESS;
|
||||
LOG_INFO("start to deal with rest data table", K(ret), K_(table_ids));
|
||||
for (int64_t idx = 0; idx < table_ids_.count(); ++idx) {
|
||||
@ -932,7 +932,7 @@ int ObMajorMergeProgressChecker::generate_tablet_status_map()
|
||||
} else if (replica_snapshot_scn < compaction_scn_) {
|
||||
status = ObTabletCompactionStatus::INITIAL;
|
||||
(void) uncompact_info_.add_tablet(*replica);
|
||||
LOG_TRACE("unfinish tablet", KR(ret), K(replica_snapshot_scn), K_(compaction_scn));
|
||||
LOG_TRACE("unfinish tablet", KR(ret), KPC(replica), K(replica_snapshot_scn), K_(compaction_scn));
|
||||
break;
|
||||
} else if (OB_FAIL(report_scn.convert_for_tx(replica->get_report_scn()))) { // check report_scn
|
||||
LOG_WARN("fail to convert val to SCN", KR(ret), KPC(replica));
|
||||
|
||||
Reference in New Issue
Block a user