[CP] backup task cannot finish when backup disk is full

This commit is contained in:
godyangfight
2022-06-25 19:10:54 +08:00
committed by wangzelin.wzl
parent e44cddde95
commit f4df995acd
5 changed files with 40 additions and 5 deletions

View File

@ -1973,6 +1973,23 @@ int ObBackupFileAppender::sync_upload()
STORAGE_LOG(WARN, "advance align size fail", K(ret), K(align_size), K(advance_size));
}
#ifdef ERRSIM
if (OB_SUCC(ret) && ObBackupFileType::BACKUP_META_INDEX == file_type_) {
ret = E(EventTable::EN_BACKUP_COMMON_HEADER_NOT_COMPLETED) OB_SUCCESS;
if (OB_FAIL(ret)) {
LOG_WARN("prepare uplaod incomplete header", K(ret), KPC(common_header_));
const int64_t head_length = sizeof(ObBackupCommonHeader);
if (0 == head_length / 2 || data_buffer_.length() < head_length) {
ret = OB_SUCCESS;
} else if (OB_FAIL(storage_appender_.pwrite(data_buffer_.data(), head_length / 2, file_offset_))) {
STORAGE_LOG(WARN, "storage_writer writer fail", K(ret), K(storage_appender_));
} else {
ret = OB_IO_ERROR;
}
}
}
#endif
#ifdef ERRSIM
if (OB_SUCC(ret) && ObBackupFileType::BACKUP_META_INDEX == file_type_) {
ret = E(EventTable::EN_BACKUP_META_INDEX_BUFFER_NOT_COMPLETED) OB_SUCCESS;
@ -2956,7 +2973,7 @@ int ObBackupPhysicalPGCtx::fetch_retry_points(const ObString& path, const ObStri
common_header = NULL;
int64_t end_pos = 0;
if (buffer_reader.remain() < sizeof(ObBackupCommonHeader)) {
STORAGE_LOG(INFO, "backup data has incomplete data, skip it", K(buffer_reader.remain()));
FLOG_INFO("backup data has incomplete data, skip it", K(buffer_reader.remain()), K(path), K(storage_info));
break;
} else if (OB_FAIL(buffer_reader.get(common_header))) {
STORAGE_LOG(WARN, "read macro index common header fail", K(ret));

View File

@ -753,7 +753,11 @@ int ObPhyRestoreMetaIndexStore::init_one_file(
ObBackupMetaIndex meta_index;
while (OB_SUCC(ret) && buffer_reader.remain() > 0) {
common_header = NULL;
if (OB_FAIL(buffer_reader.get(common_header))) {
if (buffer_reader.remain() < sizeof(ObBackupCommonHeader)) {
FLOG_INFO("backup data has incomplete data, skip it", K(buffer_reader.remain()), K(path), K(storage_info));
break;
} else if (OB_FAIL(buffer_reader.get(common_header))) {
STORAGE_LOG(WARN, "read meta index common header fail", K(ret));
} else if (OB_ISNULL(common_header)) {
ret = OB_ERR_UNEXPECTED;
@ -1115,7 +1119,7 @@ int ObPhyRestoreMacroIndexStore::init_one_file(
while (OB_SUCC(ret) && buffer_reader.remain() > 0) {
common_header = NULL;
if (buffer_reader.remain() < sizeof(ObBackupCommonHeader)) {
STORAGE_LOG(INFO, "backup data has incomplete data, skip it", K(buffer_reader.remain()));
FLOG_INFO("backup data has incomplete data, skip it", K(buffer_reader.remain()), K(path), K(storage_info));
break;
} else if (OB_FAIL(buffer_reader.get(common_header))) {
STORAGE_LOG(WARN, "read macro index common header fail", K(ret));