it is possible that replaying dup table meta but ls is not exist

This commit is contained in:
windye
2023-06-02 03:47:47 +00:00
committed by ob-robot
parent 4239384d82
commit a7e3b054fd

View File

@ -279,9 +279,13 @@ int ObTenantCheckpointSlogHandler::replay_dup_table_ls_meta(const ObMetaDiskAddr
LOG_WARN("invalid argument", K(ret)); LOG_WARN("invalid argument", K(ret));
} else if (OB_FAIL(dup_ls_meta.deserialize(buf, buf_len, pos))) { } else if (OB_FAIL(dup_ls_meta.deserialize(buf, buf_len, pos))) {
LOG_WARN("fail to deserialize", K(ret)); LOG_WARN("fail to deserialize", K(ret));
} else if (OB_FAIL(MTL(ObLSService *) } else if (OB_FAIL(MTL(ObLSService *)->get_ls(dup_ls_meta.ls_id_, ls_handle, ObLSGetMod::STORAGE_MOD))) {
->get_ls(dup_ls_meta.ls_id_, ls_handle, ObLSGetMod::STORAGE_MOD))) { if (OB_LS_NOT_EXIST == ret) {
LOG_WARN("fail to replay_put_ls", K(ret)); LOG_INFO("this is possible when writing ls checkpoint but ls is removing", K(dup_ls_meta));
ret = OB_SUCCESS;
} else {
LOG_WARN("fail to get ls", K(ret), K(dup_ls_meta));
}
} else if (OB_ISNULL(ls = ls_handle.get_ls())) { } else if (OB_ISNULL(ls = ls_handle.get_ls())) {
ret = OB_ERR_UNEXPECTED; ret = OB_ERR_UNEXPECTED;
LOG_WARN("ls is null", K(dup_ls_meta)); LOG_WARN("ls is null", K(dup_ls_meta));
@ -642,7 +646,7 @@ int ObTenantCheckpointSlogHandler::inner_replay_create_ls_slog(const ObRedoModul
} else if (OB_FAIL(MTL(ObLSService *)->replay_create_ls(slog_entry.get_ls_meta()))) { } else if (OB_FAIL(MTL(ObLSService *)->replay_create_ls(slog_entry.get_ls_meta()))) {
LOG_WARN("fail to replay ls meta slog", K(ret), K(param), K(pos)); LOG_WARN("fail to replay ls meta slog", K(ret), K(param), K(pos));
} else { } else {
LOG_INFO("successfully replay ls meta slog", K(param), K(pos)); LOG_INFO("successfully replay create ls slog", K(param), K(pos));
} }
return ret; return ret;
@ -659,7 +663,7 @@ int ObTenantCheckpointSlogHandler::inner_replay_update_ls_slog(const ObRedoModul
} else if (OB_FAIL(MTL(ObLSService *)->replay_update_ls(slog_entry.get_ls_meta()))) { } else if (OB_FAIL(MTL(ObLSService *)->replay_update_ls(slog_entry.get_ls_meta()))) {
LOG_WARN("fail to replay ls meta slog", K(ret), K(param), K(pos)); LOG_WARN("fail to replay ls meta slog", K(ret), K(param), K(pos));
} else { } else {
LOG_INFO("successfully replay ls meta slog", K(param), K(pos)); LOG_INFO("successfully replay update ls slog", K(param), K(pos));
} }
return ret; return ret;
@ -677,9 +681,13 @@ int ObTenantCheckpointSlogHandler::inner_replay_dup_table_ls_slog(
if (OB_FAIL(slog_entry.deserialize(param.buf_, param.disk_addr_.size(), pos))) { if (OB_FAIL(slog_entry.deserialize(param.buf_, param.disk_addr_.size(), pos))) {
LOG_WARN("fail to deserialize slog", K(ret), K(param), K(pos)); LOG_WARN("fail to deserialize slog", K(ret), K(param), K(pos));
} else if (OB_FAIL(MTL(ObLSService *) } else if (OB_FAIL(MTL(ObLSService *)->get_ls(slog_entry.get_dup_ls_meta().ls_id_, ls_handle, ObLSGetMod::STORAGE_MOD))) {
->get_ls(slog_entry.get_dup_ls_meta().ls_id_, ls_handle, if (OB_LS_NOT_EXIST == ret) {
ObLSGetMod::STORAGE_MOD))) { LOG_INFO("this is possible when writing ls checkpoint but ls is removing", K(slog_entry));
ret = OB_SUCCESS;
} else {
LOG_WARN("fail to get ls", K(ret), K(slog_entry));
}
LOG_WARN("get ls failed", K(ret), K(param), K(pos)); LOG_WARN("get ls failed", K(ret), K(param), K(pos));
} else if (OB_ISNULL(ls_ptr = ls_handle.get_ls())) { } else if (OB_ISNULL(ls_ptr = ls_handle.get_ls())) {
ret = OB_ERR_UNEXPECTED; ret = OB_ERR_UNEXPECTED;