提交 cba62beb 编写于 作者: S Shengliang Guan

feat: make create db retry

上级 26179507
...@@ -472,7 +472,7 @@ static int32_t mndCreateDb(SMnode *pMnode, SRpcMsg *pReq, SCreateDbReq *pCreate, ...@@ -472,7 +472,7 @@ static int32_t mndCreateDb(SMnode *pMnode, SRpcMsg *pReq, SCreateDbReq *pCreate,
} }
int32_t code = -1; int32_t code = -1;
STrans *pTrans = mndTransCreate(pMnode, TRN_POLICY_ROLLBACK, TRN_CONFLICT_DB, pReq); STrans *pTrans = mndTransCreate(pMnode, TRN_POLICY_RETRY, TRN_CONFLICT_DB, pReq);
if (pTrans == NULL) goto _OVER; if (pTrans == NULL) goto _OVER;
mDebug("trans:%d, used to create db:%s", pTrans->id, pCreate->db); mDebug("trans:%d, used to create db:%s", pTrans->id, pCreate->db);
......
...@@ -1347,13 +1347,11 @@ int32_t mndKillTrans(SMnode *pMnode, STrans *pTrans) { ...@@ -1347,13 +1347,11 @@ int32_t mndKillTrans(SMnode *pMnode, STrans *pTrans) {
for (int32_t i = 0; i < taosArrayGetSize(pArray); ++i) { for (int32_t i = 0; i < taosArrayGetSize(pArray); ++i) {
STransAction *pAction = taosArrayGet(pArray, i); STransAction *pAction = taosArrayGet(pArray, i);
if (pAction->errCode != 0) { mInfo("trans:%d, %s:%d set processed for kill msg received, errCode from %s to success", pTrans->id,
mInfo("trans:%d, %s:%d set processed for kill msg received, errCode from %s to success", pTrans->id, mndTransStr(pAction->stage), i, tstrerror(pAction->errCode));
mndTransStr(pAction->stage), i, tstrerror(pAction->errCode)); pAction->msgSent = 1;
pAction->msgSent = 1; pAction->msgReceived = 1;
pAction->msgReceived = 1; pAction->errCode = 0;
pAction->errCode = 0;
}
} }
mndTransExecute(pMnode, pTrans); mndTransExecute(pMnode, pTrans);
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
# ---- mnode # ---- mnode
./test.sh -f tsim/mnode/basic1.sim ./test.sh -f tsim/mnode/basic1.sim
./test.sh -f tsim/mnode/basic2.sim ./test.sh -f tsim/mnode/basic2.sim
#./test.sh -f tsim/mnode/basic3.sim ./test.sh -f tsim/mnode/basic3.sim
./test.sh -f tsim/mnode/basic4.sim ./test.sh -f tsim/mnode/basic4.sim
./test.sh -f tsim/mnode/basic5.sim ./test.sh -f tsim/mnode/basic5.sim
......
...@@ -7,44 +7,28 @@ system sh/exec.sh -n dnode1 -s start ...@@ -7,44 +7,28 @@ system sh/exec.sh -n dnode1 -s start
system sh/exec.sh -n dnode2 -s start system sh/exec.sh -n dnode2 -s start
sql connect sql connect
print =============== show dnodes
sql show dnodes;
if $rows != 1 then
return -1
endi
if $data00 != 1 then
return -1
endi
sql show mnodes;
if $rows != 1 then
return -1
endi
if $data00 != 1 then
return -1
endi
if $data02 != leader then
return -1
endi
print =============== create dnodes print =============== create dnodes
sql create dnode $hostname port 7200 sql create dnode $hostname port 7200
sleep 2000
sql show dnodes; $x = 0
if $rows != 2 then step1:
return -1 $x = $x + 1
endi sleep 1000
if $x == 10 then
if $data00 != 1 then print ====> dnode not ready!
return -1
endi
sql show dnodes
print ===> $data00 $data01 $data02 $data03 $data04 $data05
print ===> $data10 $data11 $data12 $data13 $data14 $data15
if $rows != 2 then
return -1 return -1
endi endi
if $data(1)[4] != ready then
if $data10 != 2 then goto step1
return -1 endi
if $data(2)[4] != ready then
goto step1
endi endi
print =============== kill dnode2 print =============== kill dnode2
...@@ -68,7 +52,7 @@ if $data[0][0] != 7 then ...@@ -68,7 +52,7 @@ if $data[0][0] != 7 then
return -1 return -1
endi endi
if $data[0][2] != undoAction then if $data[0][2] != redoAction then
return -1 return -1
endi endi
...@@ -80,14 +64,34 @@ sql_error create database d1 vgroups 2; ...@@ -80,14 +64,34 @@ sql_error create database d1 vgroups 2;
print =============== start dnode2 print =============== start dnode2
system sh/exec.sh -n dnode2 -s start system sh/exec.sh -n dnode2 -s start
sleep 3000
$x = 0
step2:
$x = $x + 1
sleep 1000
if $x == 10 then
print ====> dnode not ready!
return -1
endi
sql show dnodes
print ===> $data00 $data01 $data02 $data03 $data04 $data05
print ===> $data10 $data11 $data12 $data13 $data14 $data15
if $rows != 2 then
return -1
endi
if $data(1)[4] != ready then
goto step2
endi
if $data(2)[4] != ready then
goto step2
endi
sql show transactions sql show transactions
if $rows != 0 then if $rows != 0 then
return -1 return -1
endi endi
sql create database d1 vgroups 2; sql_error create database d1 vgroups 2;
print =============== kill dnode2 print =============== kill dnode2
system sh/exec.sh -n dnode2 -s stop -x SIGINT system sh/exec.sh -n dnode2 -s stop -x SIGINT
...@@ -106,22 +110,31 @@ if $rows != 1 then ...@@ -106,22 +110,31 @@ if $rows != 1 then
return -1 return -1
endi endi
if $data[0][0] != 9 then if $data[0][0] != 8 then
return -1 return -1
endi endi
if $data[0][2] != undoAction then if $data[0][2] != redoAction then
return -1 return -1
endi endi
if $data[0][3] != d2 then if $data[0][3] != d2 then
return -1 return -1
endi endi
return
sql show databases ;
if $rows != 4 then
return -1
endi
print d2 ==> $data(d2)[19]
if $data(d2)[19] != creating then
return -1
endi
sql_error create database d2 vgroups 2; sql_error create database d2 vgroups 2;
print =============== kill transaction print =============== kill transaction
sql kill transaction 9; sql kill transaction 8;
sleep 2000 sleep 2000
sql show transactions sql show transactions
...@@ -131,7 +144,34 @@ endi ...@@ -131,7 +144,34 @@ endi
print =============== start dnode2 print =============== start dnode2
system sh/exec.sh -n dnode2 -s start system sh/exec.sh -n dnode2 -s start
sleep 3000
$x = 0
step3:
$x = $x + 1
sleep 1000
if $x == 10 then
print ====> dnode not ready!
return -1
endi
sql show dnodes
print ===> $data00 $data01 $data02 $data03 $data04 $data05
print ===> $data10 $data11 $data12 $data13 $data14 $data15
if $rows != 2 then
return -1
endi
if $data(1)[4] != ready then
goto step3
endi
if $data(2)[4] != ready then
goto step3
endi
sql show transactions
if $rows != 0 then
return -1
endi
sql drop database d2;
sql show transactions sql show transactions
if $rows != 0 then if $rows != 0 then
...@@ -145,6 +185,5 @@ sql_error kill transaction 3; ...@@ -145,6 +185,5 @@ sql_error kill transaction 3;
sql_error kill transaction 4; sql_error kill transaction 4;
sql_error kill transaction 5; sql_error kill transaction 5;
return
system sh/exec.sh -n dnode1 -s stop -x SIGINT system sh/exec.sh -n dnode1 -s stop -x SIGINT
system sh/exec.sh -n dnode2 -s stop -x SIGINT system sh/exec.sh -n dnode2 -s stop -x SIGINT
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册