Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
71021334
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
71021334
编写于
5月 04, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: adjust transaction code
上级
5b2b4da1
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
34 addition
and
20 deletion
+34
-20
source/dnode/mnode/impl/src/mndTrans.c
source/dnode/mnode/impl/src/mndTrans.c
+5
-7
source/dnode/mnode/impl/src/mndUser.c
source/dnode/mnode/impl/src/mndUser.c
+0
-3
source/dnode/mnode/impl/test/trans/trans2.cpp
source/dnode/mnode/impl/test/trans/trans2.cpp
+29
-10
未找到文件。
source/dnode/mnode/impl/src/mndTrans.c
浏览文件 @
71021334
...
...
@@ -829,15 +829,13 @@ static void mndTransSendRpcRsp(SMnode *pMnode, STrans *pTrans) {
if
(
pTrans
->
policy
==
TRN_POLICY_ROLLBACK
)
{
if
(
pTrans
->
stage
==
TRN_STAGE_UNDO_LOG
||
pTrans
->
stage
==
TRN_STAGE_UNDO_ACTION
||
pTrans
->
stage
==
TRN_STAGE_ROLLBACK
)
{
sendRsp
=
true
;
if
(
code
==
0
)
code
=
TSDB_CODE_MND_TRANS_UNKNOW_ERROR
;
sendRsp
=
true
;
}
}
if
(
pTrans
->
policy
==
TRN_POLICY_RETRY
)
{
}
else
{
if
(
pTrans
->
stage
==
TRN_STAGE_REDO_ACTION
&&
pTrans
->
failedTimes
>
0
)
{
sendRsp
=
true
;
if
(
code
==
0
)
code
=
TSDB_CODE_MND_TRANS_UNKNOW_ERROR
;
sendRsp
=
true
;
}
}
...
...
@@ -1102,8 +1100,8 @@ static bool mndTransPerformCommitStage(SMnode *pMnode, STrans *pTrans) {
}
else
{
pTrans
->
code
=
terrno
;
if
(
pTrans
->
policy
==
TRN_POLICY_ROLLBACK
)
{
pTrans
->
stage
=
TRN_STAGE_
RE
DO_ACTION
;
mError
(
"trans:%d, stage from commit to
re
doAction since %s, failedTimes:%d"
,
pTrans
->
id
,
terrstr
(),
pTrans
->
stage
=
TRN_STAGE_
UN
DO_ACTION
;
mError
(
"trans:%d, stage from commit to
un
doAction since %s, failedTimes:%d"
,
pTrans
->
id
,
terrstr
(),
pTrans
->
failedTimes
);
continueExec
=
true
;
}
else
{
...
...
source/dnode/mnode/impl/src/mndUser.c
浏览文件 @
71021334
...
...
@@ -275,9 +275,6 @@ static int32_t mndCreateUser(SMnode *pMnode, char *acct, SCreateUserReq *pCreate
}
sdbSetRawStatus
(
pRedoRaw
,
SDB_STATUS_READY
);
char
*
param
=
strdup
(
"====> test code to be deleted later <====="
);
mndTransSetCb
(
pTrans
,
TEST_TRANS_START_FUNC
,
TEST_TRANS_STOP_FUNC
,
param
,
strlen
(
param
)
+
1
);
if
(
mndTransPrepare
(
pMnode
,
pTrans
)
!=
0
)
{
mError
(
"trans:%d, failed to prepare since %s"
,
pTrans
->
id
,
terrstr
());
mndTransDrop
(
pTrans
);
...
...
source/dnode/mnode/impl/test/trans/trans2.cpp
浏览文件 @
71021334
...
...
@@ -19,7 +19,7 @@ void reportStartup(SMgmtWrapper *pWrapper, const char *name, const char *desc) {
class
MndTestTrans2
:
public
::
testing
::
Test
{
protected:
static
void
SetUpTestSuite
()
{
static
void
InitLog
()
{
dDebugFlag
=
143
;
vDebugFlag
=
0
;
mDebugFlag
=
207
;
...
...
@@ -42,9 +42,9 @@ class MndTestTrans2 : public ::testing::Test {
if
(
taosInitLog
(
"taosdlog"
,
1
)
!=
0
)
{
printf
(
"failed to init log file
\n
"
);
}
}
walInit
();
static
void
InitMnode
()
{
static
SMsgCb
msgCb
=
{
0
};
msgCb
.
reportStartupFp
=
reportStartup
;
msgCb
.
pWrapper
=
(
SMgmtWrapper
*
)(
&
msgCb
);
// hack
...
...
@@ -63,6 +63,12 @@ class MndTestTrans2 : public ::testing::Test {
pMnode
=
mndOpen
(
mnodepath
,
&
opt
);
}
static
void
SetUpTestSuite
()
{
InitLog
();
walInit
();
InitMnode
();
}
static
void
TearDownTestSuite
()
{
mndClose
(
pMnode
);
walCleanUp
();
...
...
@@ -76,11 +82,11 @@ class MndTestTrans2 : public ::testing::Test {
void
SetUp
()
override
{}
void
TearDown
()
override
{}
void
CreateUser
(
const
char
*
user
)
{
int32_t
CreateUser
(
const
char
*
acct
,
const
char
*
user
)
{
SUserObj
userObj
=
{
0
};
taosEncryptPass_c
((
uint8_t
*
)
"taosdata"
,
strlen
(
"taosdata"
),
userObj
.
pass
);
tstrncpy
(
userObj
.
user
,
user
,
TSDB_USER_LEN
);
tstrncpy
(
userObj
.
acct
,
"root"
,
TSDB_USER_LEN
);
tstrncpy
(
userObj
.
acct
,
acct
,
TSDB_USER_LEN
);
userObj
.
createdTime
=
taosGetTimestampMs
();
userObj
.
updateTime
=
userObj
.
createdTime
;
userObj
.
superUser
=
1
;
...
...
@@ -94,19 +100,32 @@ class MndTestTrans2 : public ::testing::Test {
char
*
param
=
strdup
(
"====> test param <====="
);
mndTransSetCb
(
pTrans
,
TEST_TRANS_START_FUNC
,
TEST_TRANS_STOP_FUNC
,
param
,
strlen
(
param
)
+
1
);
mndTransPrepare
(
pMnode
,
pTrans
);
int32_t
code
=
mndTransPrepare
(
pMnode
,
pTrans
);
mndTransDrop
(
pTrans
);
return
code
;
}
};
SMnode
*
MndTestTrans2
::
pMnode
;
TEST_F
(
MndTestTrans2
,
01
_CbFunc
)
{
ASSERT_NE
(
pMnode
,
nullptr
)
;
const
char
*
acct
=
"root"
;
const
char
*
acct_invalid
=
"root1"
;
const
char
*
user1
=
"test1"
;
CreateUser
(
user1
);
const
char
*
user2
=
"test2"
;
SUserObj
*
pUser1
=
NULL
;
SUserObj
*
pUser2
=
NULL
;
SUserObj
*
pUser1
=
mndAcquireUser
(
pMnode
,
user1
);
ASSERT_NE
(
pMnode
,
nullptr
);
// create user success
EXPECT_EQ
(
CreateUser
(
acct
,
user1
),
0
);
pUser1
=
mndAcquireUser
(
pMnode
,
user1
);
ASSERT_NE
(
pUser1
,
nullptr
);
// failed to create user and rollback
EXPECT_EQ
(
CreateUser
(
acct_invalid
,
user2
),
0
);
pUser2
=
mndAcquireUser
(
pMnode
,
user2
);
ASSERT_EQ
(
pUser2
,
nullptr
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录