提交 aaa27113 编写于 作者: O obdev 提交者: wangzelin.wzl

print part_ctx info in handle_timeout

上级 09e44549
......@@ -473,24 +473,9 @@ int ObPartTransCtx::handle_timeout(const int64_t delay)
TRANS_LOG(INFO,
"handle timeout",
K(ret),
KP(this),
K_(ls_id),
K(trans_id_),
K(*this),
K(tx_expired),
K(commit_expired),
K(upstream_state_),
K(exec_info_.state_),
K(start_replay_ts_),
K(start_working_log_ts_),
K(rec_log_ts_),
K(prev_rec_log_ts_),
K(is_exiting_),
K(part_trans_action_),
K(is_incomplete_replay_ctx_),
"is_logging",
is_logging_(),
"ctx_ref",
get_ref(),
K(delay));
if (busy_cbs_.get_size() > 0) {
TRANS_LOG(INFO, "trx is waiting log_cb", K(busy_cbs_.get_size()), KPC(busy_cbs_.get_first()),
......@@ -2162,7 +2147,9 @@ int ObPartTransCtx::submit_redo_log_(ObTxLogBlock &log_block,
log_cb = NULL;
helper.reset();
if (OB_FAIL(prepare_log_cb_(!NEED_FINAL_CB, log_cb))) {
if (OB_FAIL(exec_info_.redo_lsns_.reserve(exec_info_.redo_lsns_.count() + 1))) {
TRANS_LOG(WARN, "reserve memory for redo lsn failed", K(ret));
} else if (OB_FAIL(prepare_log_cb_(!NEED_FINAL_CB, log_cb))) {
if (OB_UNLIKELY(OB_TX_NOLOGCB != ret)) {
TRANS_LOG(WARN, "get log cb failed", KR(ret), K(*this));
}
......@@ -5004,7 +4991,9 @@ int ObPartTransCtx::submit_multi_data_source_(ObTxLogBlock &log_block)
ObTxMDSRange range;
while (OB_SUCC(ret)) {
log.reset();
if (OB_FAIL(prepare_log_cb_(!NEED_FINAL_CB, log_cb))) {
if (OB_FAIL(exec_info_.redo_lsns_.reserve(exec_info_.redo_lsns_.count() + 1))) {
TRANS_LOG(WARN, "reserve memory for redo lsn failed", K(ret));
} else if (OB_FAIL(prepare_log_cb_(!NEED_FINAL_CB, log_cb))) {
if (OB_UNLIKELY(OB_TX_NOLOGCB != ret)) {
TRANS_LOG(WARN, "get log cb failed", KR(ret), K(*this));
}
......@@ -5026,9 +5015,8 @@ int ObPartTransCtx::submit_multi_data_source_(ObTxLogBlock &log_block)
// enough to hold multi source data, if not, take it as an error.
TRANS_LOG(WARN, "add new log failed", KR(ret), K(*this));
} else if (need_pre_replay_barrier
&& OB_FAIL(
log_block.rewrite_barrier_log_block(trans_id_.get_id(),
logservice::ObReplayBarrierType::PRE_BARRIER))) {
&& OB_FAIL(log_block.rewrite_barrier_log_block(
trans_id_.get_id(), logservice::ObReplayBarrierType::PRE_BARRIER))) {
TRANS_LOG(WARN, "rewrite multi data source log barrier failed", K(ret));
return_log_cb_(log_cb);
......@@ -5662,7 +5650,9 @@ int ObPartTransCtx::rollback_to_savepoint_(const int64_t from_scn,
return ret;
}
int ObPartTransCtx::submit_rollback_to_log_(const int64_t from_scn, const int64_t to_scn, ObTxData *tx_data)
int ObPartTransCtx::submit_rollback_to_log_(const int64_t from_scn,
const int64_t to_scn,
ObTxData *tx_data)
{
int ret = OB_SUCCESS;
ObTxLogBlock log_block;
......@@ -5670,11 +5660,12 @@ int ObPartTransCtx::submit_rollback_to_log_(const int64_t from_scn, const int64_
ObTxRollbackToLog log(from_scn, to_scn);
ObTxLogCb *log_cb = NULL;
ObTxLogBlockHeader
log_block_header(cluster_id_, exec_info_.next_log_entry_no_, trans_id_);
ObTxLogBlockHeader log_block_header(cluster_id_, exec_info_.next_log_entry_no_, trans_id_);
if (OB_FAIL(log_block.init(replay_hint, log_block_header))) {
TRANS_LOG(WARN, "init log block fail", K(ret), KPC(this));
} else if (OB_FAIL(exec_info_.redo_lsns_.reserve(exec_info_.redo_lsns_.count() + 1))) {
TRANS_LOG(WARN, "reserve memory for redo lsn failed", K(ret));
} else if (OB_FAIL(get_log_cb_(!NEED_FINAL_CB, log_cb))) {
TRANS_LOG(WARN, "get log_cb fail", K(ret), KPC(this));
} else if (OB_FAIL(log_block.add_new_log(log))) {
......@@ -5684,11 +5675,9 @@ int ObPartTransCtx::submit_rollback_to_log_(const int64_t from_scn, const int64_
TRANS_LOG(ERROR, "cb arg array is empty", K(ret), K(log_block));
return_log_cb_(log_cb);
log_cb = NULL;
} else if (OB_FAIL(ls_tx_ctx_mgr_->get_ls_log_adapter()
->submit_log(log_block.get_buf(),
log_block.get_size(), 0,
log_cb, false /*nonblock on EAGAIN*/
))) {
} else if (OB_FAIL(ls_tx_ctx_mgr_->get_ls_log_adapter()->submit_log(
log_block.get_buf(), log_block.get_size(), 0, log_cb, false /*nonblock on EAGAIN*/
))) {
TRANS_LOG(WARN, "submit log fail", K(ret), K(log_block), KPC(this));
return_log_cb_(log_cb);
} else if (OB_FAIL(acquire_ctx_ref())) {
......@@ -5698,12 +5687,9 @@ int ObPartTransCtx::submit_rollback_to_log_(const int64_t from_scn, const int64_
} else {
log_cb->set_tx_data(tx_data);
}
REC_TRANS_TRACE_EXT(tlog_, submit_rollback_log,
OB_ID(ret), ret,
OB_ID(from), from_scn,
OB_ID(to), to_scn);
TRANS_LOG(INFO, "RollbackToLog submit", K(ret), K(from_scn), K(to_scn),
KP(log_cb), KPC(this));
REC_TRANS_TRACE_EXT(tlog_, submit_rollback_log, OB_ID(ret), ret, OB_ID(from), from_scn, OB_ID(to),
to_scn);
TRANS_LOG(INFO, "RollbackToLog submit", K(ret), K(from_scn), K(to_scn), KP(log_cb), KPC(this));
return ret;
}
......
......@@ -1792,6 +1792,10 @@ int ObTransService::handle_tx_batch_req(int msg_type,
} else if (!leader) { \
ret = OB_NOT_MASTER; \
TRANS_LOG(WARN, "ls not master", K(ret), K(msg)); \
} else if (ctx->is_exiting()) { \
ret = OB_TRANS_CTX_NOT_EXIST; \
TRANS_LOG(INFO, "tx context is exiting",K(ret),K(msg)); \
handle_orphan_2pc_msg_(msg, false); \
} else if (OB_FAIL(ctx->msg_handler__(msg))) { \
TRANS_LOG(WARN, "handle 2pc request fail", K(ret), K(msg)); \
} \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册