fix: cant drop mnode which is offline
This commit is contained in:
parent
86c102c525
commit
1e8942e6b6
|
@ -397,17 +397,17 @@ static int32_t mndProcessCreateMnodeReq(SRpcMsg *pReq) {
|
|||
goto _OVER;
|
||||
}
|
||||
|
||||
if (sdbGetSize(pMnode->pSdb, SDB_MNODE) >= 3) {
|
||||
terrno = TSDB_CODE_MND_TOO_MANY_MNODES;
|
||||
goto _OVER;
|
||||
}
|
||||
|
||||
pDnode = mndAcquireDnode(pMnode, createReq.dnodeId);
|
||||
if (pDnode == NULL) {
|
||||
terrno = TSDB_CODE_MND_DNODE_NOT_EXIST;
|
||||
goto _OVER;
|
||||
}
|
||||
|
||||
if (sdbGetSize(pMnode->pSdb, SDB_MNODE) >= 3) {
|
||||
terrno = TSDB_CODE_MND_TOO_MANY_MNODES;
|
||||
goto _OVER;
|
||||
}
|
||||
|
||||
if (!mndIsDnodeOnline(pDnode, taosGetTimestampMs())) {
|
||||
terrno = TSDB_CODE_NODE_OFFLINE;
|
||||
goto _OVER;
|
||||
|
@ -597,6 +597,11 @@ static int32_t mndProcessDropMnodeReq(SRpcMsg *pReq) {
|
|||
goto _OVER;
|
||||
}
|
||||
|
||||
if (!mndIsDnodeOnline(pObj->pDnode, taosGetTimestampMs())) {
|
||||
terrno = TSDB_CODE_NODE_OFFLINE;
|
||||
goto _OVER;
|
||||
}
|
||||
|
||||
pUser = mndAcquireUser(pMnode, pReq->conn.user);
|
||||
if (pUser == NULL) {
|
||||
terrno = TSDB_CODE_MND_NO_USER_FROM_CONN;
|
||||
|
|
|
@ -60,6 +60,7 @@
|
|||
./test.sh -f tsim/mnode/basic2.sim
|
||||
./test.sh -f tsim/mnode/basic3.sim
|
||||
./test.sh -f tsim/mnode/basic4.sim
|
||||
./test.sh -f tsim/mnode/basic5.sim
|
||||
|
||||
# ---- show
|
||||
./test.sh -f tsim/show/basic.sim
|
||||
|
|
|
@ -118,8 +118,10 @@ endi
|
|||
|
||||
print =============== step5: drop mnode 3 and stop dnode3
|
||||
system sh/exec.sh -n dnode3 -s stop
|
||||
sql_error drop mnode on dnode 3
|
||||
|
||||
sleep 6000
|
||||
return
|
||||
sql drop mnode on dnode 3
|
||||
return
|
||||
$x = 0
|
||||
step5:
|
||||
$x = $x + 1
|
||||
|
|
|
@ -0,0 +1,109 @@
|
|||
system sh/stop_dnodes.sh
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/deploy.sh -n dnode2 -i 2
|
||||
system sh/deploy.sh -n dnode3 -i 3
|
||||
system sh/deploy.sh -n dnode4 -i 4
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
sql connect
|
||||
|
||||
print =============== step1: create dnodes
|
||||
sql create dnode $hostname port 7200
|
||||
sql create dnode $hostname port 7300
|
||||
sql create dnode $hostname port 7400
|
||||
|
||||
$x = 0
|
||||
step1:
|
||||
$x = $x + 1
|
||||
sleep 1000
|
||||
if $x == 5 then
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
if $data(1)[4] != ready then
|
||||
goto step1
|
||||
endi
|
||||
|
||||
print =============== step2: create dnodes - with error
|
||||
sql_error create mnode on dnode 1;
|
||||
sql_error create mnode on dnode 2;
|
||||
sql_error create mnode on dnode 3;
|
||||
sql_error create mnode on dnode 4;
|
||||
sql_error create mnode on dnode 5;
|
||||
sql_error create mnode on dnode 6;
|
||||
|
||||
print =============== step3: create mnode 2 and 3
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
$x = 0
|
||||
step3:
|
||||
$x = $x + 1
|
||||
sleep 1000
|
||||
if $x == 5 then
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
if $data(2)[4] != ready then
|
||||
goto step3
|
||||
endi
|
||||
if $data(3)[4] != ready then
|
||||
goto step3
|
||||
endi
|
||||
if $data(4)[4] != ready then
|
||||
goto step3
|
||||
endi
|
||||
|
||||
sql create mnode on dnode 2
|
||||
sql create mnode on dnode 3
|
||||
|
||||
$x = 0
|
||||
step31:
|
||||
$x = $x + 1
|
||||
sleep 1000
|
||||
if $x == 50 then
|
||||
return -1
|
||||
endi
|
||||
sql show mnodes
|
||||
if $data(1)[2] != leader then
|
||||
goto step31
|
||||
endi
|
||||
if $data(2)[2] != follower then
|
||||
goto step31
|
||||
endi
|
||||
if $data(3)[2] != follower then
|
||||
goto step31
|
||||
endi
|
||||
|
||||
print =============== step4: create dnodes - with error
|
||||
sql_error create mnode on dnode 1
|
||||
sql_error create mnode on dnode 2;
|
||||
sql_error create mnode on dnode 3;
|
||||
sql_error create mnode on dnode 4;
|
||||
sql_error create mnode on dnode 5;
|
||||
sql_error create mnode on dnode 6;
|
||||
|
||||
print =============== step5: drop mnodes - with error
|
||||
sql_error drop mnode on dnode 1
|
||||
sql_error drop mnode on dnode 4
|
||||
sql_error drop mnode on dnode 5
|
||||
sql_error drop mnode on dnode 6
|
||||
|
||||
system sh/exec.sh -n dnode2 -s stop
|
||||
$x = 0
|
||||
step5:
|
||||
$x = $x + 1
|
||||
sleep 1000
|
||||
if $x == 10 then
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
if $data(2)[4] != offline then
|
||||
goto step5
|
||||
endi
|
||||
|
||||
sql_error drop mnode on dnode 2
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop
|
||||
system sh/exec.sh -n dnode2 -s stop
|
||||
system sh/exec.sh -n dnode3 -s stop
|
||||
system sh/exec.sh -n dnode4 -s stop
|
Loading…
Reference in New Issue