diff --git a/source/dnode/mnode/impl/src/mndTrans.c b/source/dnode/mnode/impl/src/mndTrans.c index 660862b8d8c6a6f772807fb00060b8f1c109b6eb..bbee59090d1600693478d38fec9ff47082bcc032 100644 --- a/source/dnode/mnode/impl/src/mndTrans.c +++ b/source/dnode/mnode/impl/src/mndTrans.c @@ -1006,6 +1006,9 @@ static int32_t mndTransExecuteRedoActionsSerial(SMnode *pMnode, STrans *pTrans) if (pAction->msgReceived) { if (pAction->errCode != 0 && pAction->errCode != pAction->acceptableCode) { code = pAction->errCode; + pAction->msgSent = 0; + pAction->msgReceived = 0; + mDebug("trans:%d, %s:%d execute status is reset", pTrans->id, mndTransStr(pAction->stage), action); } } else { code = TSDB_CODE_ACTION_IN_PROGRESS; diff --git a/tests/script/jenkins/basic.txt b/tests/script/jenkins/basic.txt index 12b678eeaef8b3d9c86b25add6549d2fd4b59794..e86f07620ecde158e915f76698cc96702ad9138f 100644 --- a/tests/script/jenkins/basic.txt +++ b/tests/script/jenkins/basic.txt @@ -57,6 +57,8 @@ # ---- mnode ./test.sh -f tsim/mnode/basic1.sim ./test.sh -f tsim/mnode/basic2.sim +./test.sh -f tsim/mnode/basic3.sim +./test.sh -f tsim/mnode/basic4.sim # ---- show ./test.sh -f tsim/show/basic.sim diff --git a/tests/script/tsim/mnode/basic4.sim b/tests/script/tsim/mnode/basic4.sim index 70791b009d4f13f3674f1516a485a94df3c215fa..2a4a9d3626f8bbec308836b36d02a947e5d840c9 100644 --- a/tests/script/tsim/mnode/basic4.sim +++ b/tests/script/tsim/mnode/basic4.sim @@ -28,7 +28,7 @@ endi print =============== step2: create mnode 2 sql create mnode on dnode 2 sql_error create mnode on dnode 3 -return + system sh/exec.sh -n dnode3 -s start $x = 0 @@ -46,7 +46,6 @@ if $data(2)[4] != ready then goto step2 endi -sleep 2000 system sh/exec.sh -n dnode3 -s stop sql_error create mnode on dnode 3 @@ -94,6 +93,10 @@ step4: return -1 endi sql show mnodes -x step4 +print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] +print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] +print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] + if $data(1)[2] != LEADER then goto step4 endi @@ -114,92 +117,75 @@ if $data(3)[3] != READY then endi print =============== step5: drop mnode 3 and stop dnode3 - -return - -print =============== step3: create user -sql create user user1 PASS 'user1' -sql show users -if $rows != 2 then - return -1 -endi - -# wait mnode2 mnode3 recv data finish -sleep 10000 - -print =============== step4: stop dnode1 -system sh/exec.sh -n dnode1 -s stop +system sh/exec.sh -n dnode3 -s stop +sql_error drop mnode on dnode 3 $x = 0 -step4: +step5: $x = $x + 1 sleep 1000 - if $x == 50 then + if $x == 10 then return -1 endi -sql show mnodes -x step4 -print $data(1)[0] $data(1)[1] $data(1)[2] -print $data(2)[0] $data(2)[1] $data(2)[2] -print $data(3)[0] $data(3)[1] $data(3)[2] +sql show mnodes -x step5 +print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] +print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] +print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] -sql show users -if $rows != 2 then - return -1 +if $data(1)[2] != LEADER then + goto step5 endi - -sleep 1000 -sql show dnodes -if $data(2)[4] != ready then - return -1 +if $data(2)[2] != FOLLOWER then + goto step5 endi -if $data(3)[4] != ready then - return -1 +if $data(3)[2] != OFFLINE then + goto step5 endi - -print =============== step5: stop dnode1 -system sh/exec.sh -n dnode1 -s start -system sh/exec.sh -n dnode2 -s stop - -$x = 0 -step5: - $x = $x + 1 - sleep 1000 - if $x == 50 then - return -1 - endi -sql show mnodes -x step5 -print $data(1)[0] $data(1)[1] $data(1)[2] -print $data(2)[0] $data(2)[1] $data(2)[2] -print $data(3)[0] $data(3)[1] $data(3)[2] - -if $data(2)[2] != OFFLINE then +if $data(1)[3] != READY then goto step5 endi - -sql show users -if $rows != 2 then - return -1 +if $data(2)[3] != READY then + goto step5 +endi +if $data(3)[3] != DROPPING then + goto step5 endi -print =============== step6: stop dnode1 -system sh/exec.sh -n dnode2 -s start -system sh/exec.sh -n dnode3 -s stop +print =============== step6: start dnode3 +system sh/exec.sh -n dnode3 -s start $x = 0 step6: $x = $x + 1 sleep 1000 - if $x == 50 then + if $x == 10 then return -1 endi sql show mnodes -x step6 -print $data(1)[0] $data(1)[1] $data(1)[2] -print $data(2)[0] $data(2)[1] $data(2)[2] -print $data(3)[0] $data(3)[1] $data(3)[2] +print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] +print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] +print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] -sql show users if $rows != 2 then - return -1 + goto step6 +endi +if $data(1)[2] != LEADER then + goto step6 +endi +if $data(2)[2] != FOLLOWER then + goto step6 +endi +if $data(3)[2] != null then + goto step6 +endi +if $data(1)[3] != READY then + goto step6 +endi +if $data(2)[3] != READY then + goto step6 +endi +if $data(3)[3] != null then + goto step6 endi system sh/exec.sh -n dnode1 -s stop