Fix ls in rebuild status report readable scn bug.
This commit is contained in:
parent
c508a8efa2
commit
e472494db5
@ -31,9 +31,9 @@ using namespace common;
|
||||
namespace jit
|
||||
{
|
||||
|
||||
uint64_t ObLLVMDIType::get_size_bits()
|
||||
{
|
||||
return OB_ISNULL(v_) ? 0 : v_->getSizeInBits();
|
||||
uint64_t ObLLVMDIType::get_size_bits()
|
||||
{
|
||||
return OB_ISNULL(v_) ? 0 : v_->getSizeInBits();
|
||||
}
|
||||
|
||||
uint64_t ObLLVMDIType::get_align_bits()
|
||||
@ -164,9 +164,9 @@ int ObLLVMDIHelper::create_local_variable(const ObString &name, uint32_t arg_no,
|
||||
arg_no, file, line, type.get_v(), true) :
|
||||
jc_->dbuilder_.createAutoVariable(sp, StringRef(name.ptr(), name.length()),
|
||||
file, line, type.get_v(), true);
|
||||
if (OB_ISNULL(var_ptr)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("failed to create local variable", K(name), K(ret));
|
||||
if (OB_ISNULL(var_ptr)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("failed to create local variable", K(name), K(ret));
|
||||
} else {
|
||||
variable.set_v(var_ptr);
|
||||
}
|
||||
@ -218,9 +218,9 @@ int ObLLVMDIHelper::finalize()
|
||||
int ObLLVMDIHelper::create_pointer_type(ObLLVMDIType &pointee_type,
|
||||
ObLLVMDIType &pointer_type)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
DIType *pte_type = pointee_type.get_v();
|
||||
DIType *ptr_type = NULL;
|
||||
int ret = OB_SUCCESS;
|
||||
DIType *pte_type = pointee_type.get_v();
|
||||
DIType *ptr_type = NULL;
|
||||
if (OB_ISNULL(jc_)) {
|
||||
ret = OB_NOT_INIT;
|
||||
LOG_WARN("jc is NULL", K(ret));
|
||||
|
@ -3719,6 +3719,7 @@ int ObService::get_ls_replayed_scn(
|
||||
ObLSHandle ls_handle;
|
||||
ObLS *ls = nullptr;
|
||||
share::SCN offline_scn;
|
||||
ObMigrationStatus migration_status = ObMigrationStatus::OB_MIGRATION_STATUS_MAX;
|
||||
if (OB_ISNULL(ls_svr)) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
LOG_WARN("pointer is null", KR(ret), KP(ls_svr));
|
||||
@ -3727,17 +3728,44 @@ int ObService::get_ls_replayed_scn(
|
||||
} else if (OB_ISNULL(ls = ls_handle.get_ls())) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("log stream is null", KR(ret), K(arg), K(ls_handle));
|
||||
} else if (OB_FAIL(ls->get_max_decided_scn(cur_readable_scn))) {
|
||||
LOG_WARN("failed to get_max_decided_scn", KR(ret), K(arg), KPC(ls));
|
||||
} else if (arg.is_all_replica()) {
|
||||
if (OB_ISNULL(ls->get_ls_recovery_stat_handler())) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("failed to get ls recovery stat", KR(ret), K(arg));
|
||||
} else if (OB_FAIL(ls->get_ls_recovery_stat_handler()
|
||||
->get_all_replica_min_readable_scn(cur_readable_scn))) {
|
||||
LOG_WARN("failed to get all replica min readable_scn", KR(ret), K(arg));
|
||||
} else if (OB_FAIL(ls->get_migration_status(migration_status))) {
|
||||
LOG_WARN("failed to get migration status", K(ret), KPC(ls));
|
||||
} else if (ObMigrationStatus::OB_MIGRATION_STATUS_NONE != migration_status) {
|
||||
cur_readable_scn = SCN::base_scn();
|
||||
LOG_INFO("ls migration status is not none, report base scn as readable scn", K(migration_status), "ls_id", ls->get_ls_id());
|
||||
if (arg.is_all_replica()) {
|
||||
ret = OB_EAGAIN;
|
||||
LOG_WARN("leader get all replica min readable scn, but leader migration status is not none, need retry",
|
||||
K(ret), K(arg), K(migration_status), "ls_id", ls->get_ls_id());
|
||||
}
|
||||
} else {
|
||||
if (OB_FAIL(ls->get_max_decided_scn(cur_readable_scn))) {
|
||||
LOG_WARN("failed to get_max_decided_scn", KR(ret), K(arg), KPC(ls));
|
||||
} else if (arg.is_all_replica()) {
|
||||
if (OB_ISNULL(ls->get_ls_recovery_stat_handler())) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("failed to get ls recovery stat", KR(ret), K(arg));
|
||||
} else if (OB_FAIL(ls->get_ls_recovery_stat_handler()
|
||||
->get_all_replica_min_readable_scn(cur_readable_scn))) {
|
||||
LOG_WARN("failed to get all replica min readable_scn", KR(ret), K(arg));
|
||||
}
|
||||
}
|
||||
|
||||
if (FAILEDx(ls->get_migration_status(migration_status))) {
|
||||
LOG_WARN("failed to get migration status", K(ret), KPC(ls));
|
||||
} else if (ObMigrationStatus::OB_MIGRATION_STATUS_NONE != migration_status) {
|
||||
const SCN original_readable_scn = cur_readable_scn;
|
||||
cur_readable_scn = SCN::base_scn();
|
||||
LOG_INFO("ls migration status is not none, report base scn as readable scn", K(migration_status),
|
||||
"ls_id", ls->get_ls_id(), K(original_readable_scn));
|
||||
if (arg.is_all_replica()) {
|
||||
ret = OB_EAGAIN;
|
||||
LOG_WARN("leader get all replica min readable scn, but leader migration status is not none, need retry",
|
||||
K(ret), K(arg), K(migration_status), "ls_id", ls->get_ls_id());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret) && ERRSIM_GET_LS_READABLE_SCN_OLD) {
|
||||
const int64_t current_time = ObTimeUtility::current_time() -
|
||||
GCONF.internal_sql_execute_timeout;
|
||||
|
Loading…
x
Reference in New Issue
Block a user