Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
clmforever
oceanbase
提交
3c2464ff
O
oceanbase
项目概览
clmforever
/
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,体验更适合开发者的 AI 搜索 >>
提交
3c2464ff
编写于
3月 03, 2023
作者:
C
chinaxing
提交者:
ob-robot
3月 03, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[master] release tx won't failed if tx is active
上级
01a4cbb0
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
10 addition
and
12 deletion
+10
-12
src/sql/ob_sql_trans_control.cpp
src/sql/ob_sql_trans_control.cpp
+9
-8
src/storage/tx/ob_trans_define_v4.cpp
src/storage/tx/ob_trans_define_v4.cpp
+0
-3
src/storage/tx/ob_tx_api.cpp
src/storage/tx/ob_tx_api.cpp
+1
-1
未找到文件。
src/sql/ob_sql_trans_control.cpp
浏览文件 @
3c2464ff
...
...
@@ -72,7 +72,7 @@ static int get_tx_service(ObBasicSessionInfo *session,
{
int
ret
=
OB_SUCCESS
;
auto
effective_tenant_id
=
session
->
get_effective_tenant_id
();
if
(
session
->
get_tx_desc
()
!=
NULL
)
{
if
(
OB_NOT_NULL
(
session
->
get_tx_desc
())
)
{
auto
tx_tenant_id
=
session
->
get_tx_desc
()
->
get_tenant_id
();
if
(
effective_tenant_id
!=
tx_tenant_id
)
{
ret
=
OB_TENANT_ID_NOT_MATCH
;
...
...
@@ -348,9 +348,9 @@ int ObSqlTransControl::kill_tx(ObSQLSessionInfo *session, int cause)
// and disassocate with session
if
(
tx_desc
->
is_xa_trans
()
&&
tx_desc
->
get_addr
()
==
GCONF
.
self_addr_
)
{
auto
txs
=
MTL
(
transaction
::
ObTransService
*
);
CK
(
OB_NOT_NULL
(
txs
));
OZ
(
txs
->
release_tx_ref
(
*
tx_desc
));
OX
(
session
->
get_tx_desc
()
=
NULL
)
;
CK
(
OB_NOT_NULL
(
txs
)
,
session_id
,
tx_id
);
OZ
(
txs
->
release_tx_ref
(
*
tx_desc
)
,
session_id
,
tx_id
);
session
->
get_tx_desc
()
=
NULL
;
}
}
else
if
(
tx_desc
->
is_xa_trans
())
{
const
transaction
::
ObXATransID
xid
=
session
->
get_xid
();
...
...
@@ -1001,6 +1001,7 @@ int ObSqlTransControl::reset_session_tx_state(ObBasicSessionInfo *session, bool
LOG_DEBUG
(
"reset session tx state"
,
KPC
(
session
->
get_tx_desc
()),
K
(
lbt
()));
if
(
OB_NOT_NULL
(
session
->
get_tx_desc
()))
{
auto
&
tx_desc
=
*
session
->
get_tx_desc
();
auto
tx_id
=
tx_desc
.
get_tx_id
();
auto
effect_tid
=
session
->
get_effective_tenant_id
();
MTL_SWITCH
(
effect_tid
)
{
transaction
::
ObTransService
*
txs
=
NULL
;
...
...
@@ -1008,12 +1009,12 @@ int ObSqlTransControl::reset_session_tx_state(ObBasicSessionInfo *session, bool
if
(
reuse_tx_desc
)
{
if
(
OB_FAIL
(
txs
->
reuse_tx
(
tx_desc
)))
{
LOG_ERROR
(
"reuse txn descriptor fail, will release it"
,
K
(
ret
),
KPC
(
session
),
K
(
tx_desc
));
OZ
(
txs
->
release_tx
(
tx_desc
));
OX
(
session
->
get_tx_desc
()
=
NULL
)
;
OZ
(
txs
->
release_tx
(
tx_desc
)
,
tx_id
);
session
->
get_tx_desc
()
=
NULL
;
}
}
else
{
OZ
(
txs
->
release_tx
(
tx_desc
),
*
session
,
tx_desc
);
OX
(
session
->
get_tx_desc
()
=
NULL
)
;
OZ
(
txs
->
release_tx
(
tx_desc
),
*
session
,
tx_
id
,
tx_
desc
);
session
->
get_tx_desc
()
=
NULL
;
}
}
}
...
...
src/storage/tx/ob_trans_define_v4.cpp
浏览文件 @
3c2464ff
...
...
@@ -385,9 +385,6 @@ void ObTxDesc::reset()
xa_ctx_
=
NULL
;
tlog_
.
reset
();
xa_ctx_
=
NULL
;
#ifndef NDEBUG
alloc_link_
.
reset
();
#endif
}
const
ObString
&
ObTxDesc
::
get_tx_state_str
()
const
{
...
...
src/storage/tx/ob_tx_api.cpp
浏览文件 @
3c2464ff
...
...
@@ -150,7 +150,7 @@ int ObTransService::release_tx(ObTxDesc &tx)
#endif
tx_desc_mgr_
.
revert
(
tx
);
}
else
{
ret
=
finalize_tx_
(
tx
);
finalize_tx_
(
tx
);
tx_desc_mgr_
.
revert
(
tx
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录