Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
soremi
oceanbase
提交
aaa27113
O
oceanbase
项目概览
soremi
/
oceanbase
与 Fork 源项目一致
Fork自
oceanbase / oceanbase
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oceanbase
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
aaa27113
编写于
11月 03, 2022
作者:
O
obdev
提交者:
wangzelin.wzl
11月 03, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
print part_ctx info in handle_timeout
上级
09e44549
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
25 addition
and
35 deletion
+25
-35
src/storage/tx/ob_trans_part_ctx.cpp
src/storage/tx/ob_trans_part_ctx.cpp
+21
-35
src/storage/tx/ob_trans_service_v4.cpp
src/storage/tx/ob_trans_service_v4.cpp
+4
-0
未找到文件。
src/storage/tx/ob_trans_part_ctx.cpp
浏览文件 @
aaa27113
...
...
@@ -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
;
}
...
...
src/storage/tx/ob_trans_service_v4.cpp
浏览文件 @
aaa27113
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录