Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
邱崇源
oceanbase
提交
e2f9e077
O
oceanbase
项目概览
邱崇源
/
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 搜索 >>
提交
e2f9e077
编写于
2月 13, 2023
作者:
D
dimstars
提交者:
ob-robot
2月 13, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix coredump at ObEndTransCallback::callback
上级
8268127e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
12 addition
and
10 deletion
+12
-10
src/sql/session/ob_basic_session_info.cpp
src/sql/session/ob_basic_session_info.cpp
+3
-0
src/sql/session/ob_basic_session_info.h
src/sql/session/ob_basic_session_info.h
+2
-0
src/storage/transaction/ob_trans_service.cpp
src/storage/transaction/ob_trans_service.cpp
+7
-10
未找到文件。
src/sql/session/ob_basic_session_info.cpp
浏览文件 @
e2f9e077
...
@@ -4345,6 +4345,8 @@ int ObBasicSessionInfo::trans_save_session(TransSavedValue& saved_value)
...
@@ -4345,6 +4345,8 @@ int ObBasicSessionInfo::trans_save_session(TransSavedValue& saved_value)
OX
(
trans_result_
.
reset
());
OX
(
trans_result_
.
reset
());
OX
(
saved_value
.
nested_count_
=
nested_count_
);
OX
(
saved_value
.
nested_count_
=
nested_count_
);
OX
(
nested_count_
=
-
1
);
OX
(
nested_count_
=
-
1
);
OX
(
saved_value
.
trans_consistency_type_
=
trans_consistency_type_
);
OX
(
trans_consistency_type_
=
transaction
::
ObTransConsistencyType
::
UNKNOWN
);
return
ret
;
return
ret
;
}
}
...
@@ -4356,6 +4358,7 @@ int ObBasicSessionInfo::trans_restore_session(TransSavedValue& saved_value)
...
@@ -4356,6 +4358,7 @@ int ObBasicSessionInfo::trans_restore_session(TransSavedValue& saved_value)
OX
(
trans_flags_
=
saved_value
.
trans_flags_
);
OX
(
trans_flags_
=
saved_value
.
trans_flags_
);
OZ
(
trans_desc_
.
trans_deep_copy
(
saved_value
.
trans_desc_
));
OZ
(
trans_desc_
.
trans_deep_copy
(
saved_value
.
trans_desc_
));
OZ
(
base_restore_session
(
saved_value
));
OZ
(
base_restore_session
(
saved_value
));
OX
(
trans_consistency_type_
=
saved_value
.
trans_consistency_type_
);
return
ret
;
return
ret
;
}
}
...
...
src/sql/session/ob_basic_session_info.h
浏览文件 @
e2f9e077
...
@@ -378,6 +378,7 @@ public:
...
@@ -378,6 +378,7 @@ public:
trans_flags_
.
reset
();
trans_flags_
.
reset
();
trans_result_
.
reset
();
trans_result_
.
reset
();
nested_count_
=
-
1
;
nested_count_
=
-
1
;
trans_consistency_type_
=
transaction
::
ObTransConsistencyType
::
UNKNOWN
;
}
}
public:
public:
...
@@ -385,6 +386,7 @@ public:
...
@@ -385,6 +386,7 @@ public:
TransFlags
trans_flags_
;
TransFlags
trans_flags_
;
TransResult
trans_result_
;
TransResult
trans_result_
;
int64_t
nested_count_
;
int64_t
nested_count_
;
int32_t
trans_consistency_type_
;
};
};
public:
public:
...
...
src/storage/transaction/ob_trans_service.cpp
浏览文件 @
e2f9e077
...
@@ -727,6 +727,11 @@ int ObTransService::handle_sp_end_trans_(const bool is_rollback, ObTransDesc& tr
...
@@ -727,6 +727,11 @@ int ObTransService::handle_sp_end_trans_(const bool is_rollback, ObTransDesc& tr
need_rollback
=
true
;
need_rollback
=
true
;
save_ret
=
OB_TRANS_ROLLBACKED
;
save_ret
=
OB_TRANS_ROLLBACKED
;
callback
=
&
null_cb
;
callback
=
&
null_cb
;
}
else
if
(
is_bounded_staleness_read
&&
OB_NOT_NULL
(
trans_desc
.
get_part_ctx
()))
{
TRANS_LOG
(
ERROR
,
"transaction is_bounded_staleness_read but part_ctx is not null"
,
K
(
is_rollback
),
K
(
trans_desc
));
need_rollback
=
true
;
save_ret
=
OB_ERR_UNEXPECTED
;
callback
=
&
null_cb
;
}
}
TRANS_STAT_COMMIT_ABORT_TRANS_INC
(
need_rollback
,
tenant_id
);
TRANS_STAT_COMMIT_ABORT_TRANS_INC
(
need_rollback
,
tenant_id
);
...
@@ -748,18 +753,10 @@ int ObTransService::handle_sp_end_trans_(const bool is_rollback, ObTransDesc& tr
...
@@ -748,18 +753,10 @@ int ObTransService::handle_sp_end_trans_(const bool is_rollback, ObTransDesc& tr
need_convert_to_dist_trans
)))
{
need_convert_to_dist_trans
)))
{
TRANS_LOG
(
WARN
,
"sp commit failed"
,
K
(
ret
),
K
(
stmt_expired_time
),
K
(
trans_desc
));
TRANS_LOG
(
WARN
,
"sp commit failed"
,
K
(
ret
),
K
(
stmt_expired_time
),
K
(
trans_desc
));
if
(
!
need_convert_to_dist_trans
)
{
if
(
!
need_convert_to_dist_trans
)
{
if
(
is_bounded_staleness_read
)
{
(
void
)
slave_part_trans_ctx_mgr_
.
revert_trans_ctx
(
part_ctx
);
}
else
{
(
void
)
part_trans_ctx_mgr_
.
revert_trans_ctx
(
part_ctx
);
}
}
}
else
{
if
(
is_bounded_staleness_read
)
{
(
void
)
slave_part_trans_ctx_mgr_
.
revert_trans_ctx
(
part_ctx
);
}
else
{
(
void
)
part_trans_ctx_mgr_
.
revert_trans_ctx
(
part_ctx
);
(
void
)
part_trans_ctx_mgr_
.
revert_trans_ctx
(
part_ctx
);
}
}
}
else
{
(
void
)
part_trans_ctx_mgr_
.
revert_trans_ctx
(
part_ctx
);
}
}
if
(
OB_SUCC
(
ret
))
{
if
(
OB_SUCC
(
ret
))
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录