[scn] fix test_memtable and errno

This commit is contained in:
Handora 2022-11-28 02:15:34 +00:00 committed by ob-robot
parent bee212d8a9
commit 3cdfb11aa5
6 changed files with 17 additions and 22 deletions

View File

@ -17397,17 +17397,17 @@ static const _error _error_OB_OBJ_UNLOCK_CONFLICT = {
.oracle_str_error = "ORA-00600: internal error code, arguments: -6276, there is an unlock operation doing, unlock conflict.",
.oracle_str_user_error = "ORA-00600: internal error code, arguments: -6276, there is an unlock operation doing, unlock conflict."
};
static const _error _error_OB_LOG_TS_OUT_OF_BOUND = {
.error_name = "OB_LOG_TS_OUT_OF_BOUND",
static const _error _error_OB_SCN_OUT_OF_BOUND = {
.error_name = "OB_SCN_OUT_OF_BOUND",
.error_cause = "Internal Error",
.error_solution = "Contact OceanBase Support",
.mysql_errno = -1,
.sqlstate = "HY000",
.str_error = "log_ts is out of bounds of memtable",
.str_user_error = "log_ts is out of bounds of memtable",
.str_error = "scn is out of bounds of memtable",
.str_user_error = "scn is out of bounds of memtable",
.oracle_errno = 600,
.oracle_str_error = "ORA-00600: internal error code, arguments: -6277, log_ts is out of bounds of memtable",
.oracle_str_user_error = "ORA-00600: internal error code, arguments: -6277, log_ts is out of bounds of memtable"
.oracle_str_error = "ORA-00600: internal error code, arguments: -6277, scn is out of bounds of memtable",
.oracle_str_user_error = "ORA-00600: internal error code, arguments: -6277, scn is out of bounds of memtable"
};
static const _error _error_OB_TRANS_IDLE_TIMEOUT = {
.error_name = "OB_TRANS_IDLE_TIMEOUT",
@ -23400,7 +23400,7 @@ struct ObStrErrorInit
_errors[-OB_ERR_PARTITIONING_KEY_MAPS_TO_A_PARTITION_OUTSIDE_MAXIMUM_PERMITTED_NUMBER_OF_PARTITIONS] = &_error_OB_ERR_PARTITIONING_KEY_MAPS_TO_A_PARTITION_OUTSIDE_MAXIMUM_PERMITTED_NUMBER_OF_PARTITIONS;
_errors[-OB_OBJ_LOCK_NOT_COMPLETED] = &_error_OB_OBJ_LOCK_NOT_COMPLETED;
_errors[-OB_OBJ_UNLOCK_CONFLICT] = &_error_OB_OBJ_UNLOCK_CONFLICT;
_errors[-OB_LOG_TS_OUT_OF_BOUND] = &_error_OB_LOG_TS_OUT_OF_BOUND;
_errors[-OB_SCN_OUT_OF_BOUND] = &_error_OB_SCN_OUT_OF_BOUND;
_errors[-OB_TRANS_IDLE_TIMEOUT] = &_error_OB_TRANS_IDLE_TIMEOUT;
_errors[-OB_LOG_ID_NOT_FOUND] = &_error_OB_LOG_ID_NOT_FOUND;
_errors[-OB_LSR_THREAD_STOPPED] = &_error_OB_LSR_THREAD_STOPPED;

View File

@ -1590,8 +1590,8 @@ DEFINE_ORACLE_ERROR(OB_ERR_PARTITIONING_KEY_MAPS_TO_A_PARTITION_OUTSIDE_MAXIMUM_
DEFINE_ERROR(OB_OBJ_LOCK_NOT_COMPLETED, -6275, -1, "HY000", "object lock not completed, and can not unlock.");
DEFINE_ERROR(OB_OBJ_UNLOCK_CONFLICT, -6276, -1, "HY000", "there is an unlock operation doing, unlock conflict.");
// for memtable log_ts
DEFINE_ERROR(OB_LOG_TS_OUT_OF_BOUND, -6277, -1, "HY000", "log_ts is out of bounds of memtable");
// for memtable scn
DEFINE_ERROR(OB_SCN_OUT_OF_BOUND, -6277, -1, "HY000", "scn is out of bounds of memtable");
DEFINE_ORACLE_ERROR(OB_TRANS_IDLE_TIMEOUT, -6278, 6002, "25000", "Transaction idle timeout occurred, please rollback the transaction, set the variable ob_trx_idle_timeout to a larger value and then restart the transaction", 24761, "transaction rolled back: transaction idle timeout");

View File

@ -1237,7 +1237,7 @@ constexpr int OB_ERR_INTERVAL_CANNOT_BE_ZERO = -6273;
constexpr int OB_ERR_PARTITIONING_KEY_MAPS_TO_A_PARTITION_OUTSIDE_MAXIMUM_PERMITTED_NUMBER_OF_PARTITIONS = -6274;
constexpr int OB_OBJ_LOCK_NOT_COMPLETED = -6275;
constexpr int OB_OBJ_UNLOCK_CONFLICT = -6276;
constexpr int OB_LOG_TS_OUT_OF_BOUND = -6277;
constexpr int OB_SCN_OUT_OF_BOUND = -6277;
constexpr int OB_TRANS_IDLE_TIMEOUT = -6278;
constexpr int OB_LOG_ID_NOT_FOUND = -6301;
constexpr int OB_LSR_THREAD_STOPPED = -6302;
@ -3046,7 +3046,7 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219;
#define OB_ERR_PARTITIONING_KEY_MAPS_TO_A_PARTITION_OUTSIDE_MAXIMUM_PERMITTED_NUMBER_OF_PARTITIONS__USER_ERROR_MSG "partitioning key maps to a partition outside maximum permitted number of partitions"
#define OB_OBJ_LOCK_NOT_COMPLETED__USER_ERROR_MSG "object lock not completed, and can not unlock."
#define OB_OBJ_UNLOCK_CONFLICT__USER_ERROR_MSG "there is an unlock operation doing, unlock conflict."
#define OB_LOG_TS_OUT_OF_BOUND__USER_ERROR_MSG "log_ts is out of bounds of memtable"
#define OB_SCN_OUT_OF_BOUND__USER_ERROR_MSG "scn is out of bounds of memtable"
#define OB_TRANS_IDLE_TIMEOUT__USER_ERROR_MSG "Transaction idle timeout occurred, please rollback the transaction, set the variable ob_trx_idle_timeout to a larger value and then restart the transaction"
#define OB_LOG_ID_NOT_FOUND__USER_ERROR_MSG "log id not found"
#define OB_LSR_THREAD_STOPPED__USER_ERROR_MSG "log scan runnable thread stop"
@ -4876,7 +4876,7 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219;
#define OB_ERR_PARTITIONING_KEY_MAPS_TO_A_PARTITION_OUTSIDE_MAXIMUM_PERMITTED_NUMBER_OF_PARTITIONS__ORA_USER_ERROR_MSG "ORA-14300: partitioning key maps to a partition outside maximum permitted number of partitions"
#define OB_OBJ_LOCK_NOT_COMPLETED__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6275, object lock not completed, and can not unlock."
#define OB_OBJ_UNLOCK_CONFLICT__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6276, there is an unlock operation doing, unlock conflict."
#define OB_LOG_TS_OUT_OF_BOUND__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6277, log_ts is out of bounds of memtable"
#define OB_SCN_OUT_OF_BOUND__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6277, scn is out of bounds of memtable"
#define OB_TRANS_IDLE_TIMEOUT__ORA_USER_ERROR_MSG "ORA-24761: transaction rolled back: transaction idle timeout"
#define OB_LOG_ID_NOT_FOUND__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6301, log id not found"
#define OB_LSR_THREAD_STOPPED__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6302, log scan runnable thread stop"

View File

@ -1466,7 +1466,7 @@ int ObMemtable::set_rec_scn(palf::SCN rec_scn)
ret = OB_INVALID_ARGUMENT;
TRANS_LOG(WARN, "invalid args", K(ret), K(rec_scn));
} else if (rec_scn <= get_start_scn()) {
ret = OB_LOG_TS_OUT_OF_BOUND;
ret = OB_SCN_OUT_OF_BOUND;
TRANS_LOG(ERROR, "cannot set freeze log ts smaller to start log ts", K(ret), K(rec_scn), K(ls_id), KPC(this));
} else {
palf::SCN old_rec_scn;
@ -1496,7 +1496,7 @@ int ObMemtable::set_start_scn(const palf::SCN start_scn)
} else if (start_scn >= get_end_scn()
|| (max_end_scn_ != palf::SCN::min_scn() && start_scn >= max_end_scn_)
|| start_scn >= rec_scn_) {
ret = OB_LOG_TS_OUT_OF_BOUND;
ret = OB_SCN_OUT_OF_BOUND;
TRANS_LOG(ERROR, "cannot set start ts now", K(ret), K(start_scn), K(ls_id), KPC(this));
} else {
key_.scn_range_.start_scn_ = start_scn;
@ -1517,7 +1517,7 @@ int ObMemtable::set_end_scn(const palf::SCN freeze_scn)
ret = OB_INVALID_ARGUMENT;
TRANS_LOG(WARN, "invalid args", K(ret), K(freeze_scn));
} else if (freeze_scn < get_start_scn()) {
ret = OB_LOG_TS_OUT_OF_BOUND;
ret = OB_SCN_OUT_OF_BOUND;
TRANS_LOG(ERROR, "cannot set freeze log ts smaller to start log ts",
K(ret), K(freeze_scn), K(ls_id), KPC(this));
} else {
@ -1549,7 +1549,7 @@ int ObMemtable::set_max_end_scn(const palf::SCN scn)
ret = OB_INVALID_ARGUMENT;
TRANS_LOG(WARN, "invalid args", K(ret), K(scn));
} else if (scn <= get_start_scn() || scn > get_end_scn()) {
ret = OB_LOG_TS_OUT_OF_BOUND;
ret = OB_SCN_OUT_OF_BOUND;
TRANS_LOG(WARN, "cannot set max end log ts smaller to start log ts",
K(ret), K(scn), K(ls_id), KPC(this));
} else {

View File

@ -686,11 +686,6 @@ int ObTabletCreateDeleteHelper::do_abort_create_tablets(
ObTabletMapKey key;
key.ls_id_ = ls_.get_ls_id();
// TODO: fix it after multi source data refactor
// if (OB_UNLIKELY(trans_flags.log_ts_ < OB_INVALID_TIMESTAMP)) {
// ret = OB_ERR_UNEXPECTED;
// LOG_WARN("invalid log ts", K(ret), K(trans_flags));
// } else
if (!trans_flags.is_redo_synced()) {
// on redo cb has not been called
// just remove tablets directly

View File

@ -724,7 +724,7 @@ int ObTxReplayExecutor::get_compat_mode_(const ObTabletID &tablet_id, lib::Worke
void ObTxReplayExecutor::rewrite_replay_retry_code_(int &ret_code)
{
if (ret_code == OB_MINOR_FREEZE_NOT_ALLOW || ret_code == OB_LOG_TS_OUT_OF_BOUND ||
if (ret_code == OB_MINOR_FREEZE_NOT_ALLOW || ret_code == OB_SCN_OUT_OF_BOUND ||
ret_code == OB_ALLOCATE_MEMORY_FAILED || ret_code == OB_TIMEOUT) {
TRANS_LOG(INFO, "rewrite replay error_code as OB_EAGAIN for retry", K(ret_code),
K(ls_->get_ls_id()), K(log_ts_ns_));