2025-05-04 14:31:35 +00:00
|
|
|
import time
|
|
|
|
|
from new_test_framework.utils import tdLog, tdSql, sc, clusterComCheck
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestMnodeBasic4:
|
|
|
|
|
|
|
|
|
|
def setup_class(cls):
|
|
|
|
|
tdLog.debug(f"start to execute {__file__}")
|
|
|
|
|
|
|
|
|
|
def test_mnode_basic4(self):
|
2025-09-04 12:33:50 +00:00
|
|
|
"""replica 3: kill -9 then drop
|
2025-05-04 14:31:35 +00:00
|
|
|
|
2025-09-04 12:33:50 +00:00
|
|
|
1. Create mnodes on the second and third dnodes
|
|
|
|
|
2. Force stop dnode3
|
|
|
|
|
3. Start dnode3
|
|
|
|
|
4. Delete dnode3
|
|
|
|
|
5. Check service availability
|
2025-05-04 14:31:35 +00:00
|
|
|
|
|
|
|
|
Catalog:
|
|
|
|
|
- ManageNodes:Mnode
|
|
|
|
|
|
|
|
|
|
Since: v3.0.0.0
|
|
|
|
|
|
|
|
|
|
Labels: common,ci
|
|
|
|
|
|
|
|
|
|
Jira: None
|
|
|
|
|
|
|
|
|
|
History:
|
2025-05-07 05:38:12 +00:00
|
|
|
- 2025-5-5 Simon Guan Migrated from tsim/mnode/basic4.sim
|
2025-05-04 14:31:35 +00:00
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
clusterComCheck.checkDnodes(3)
|
|
|
|
|
sc.dnodeStop(3)
|
|
|
|
|
clusterComCheck.checkDnodes(2)
|
|
|
|
|
|
|
|
|
|
tdLog.info(f"=============== step2: create mnode 2")
|
|
|
|
|
tdSql.execute(f"create mnode on dnode 2")
|
|
|
|
|
tdSql.error(f"create mnode on dnode 3")
|
|
|
|
|
|
|
|
|
|
sc.dnodeStart(3)
|
|
|
|
|
clusterComCheck.checkDnodes(3)
|
|
|
|
|
|
|
|
|
|
tdLog.info(f"=============== step4: create mnode 3")
|
|
|
|
|
tdSql.execute(f"create mnode on dnode 3")
|
|
|
|
|
clusterComCheck.checkMnodeStatus(3)
|
|
|
|
|
|
|
|
|
|
tdLog.info(f"=============== step5: drop mnode 3 and stop dnode3")
|
|
|
|
|
sc.dnodeForceStop(3)
|
|
|
|
|
clusterComCheck.checkDnodes(2)
|
|
|
|
|
tdSql.error(f"drop mnode on dnode 3")
|
|
|
|
|
|
|
|
|
|
tdLog.info(f"=============== step6: start dnode3")
|
|
|
|
|
sc.dnodeStart(3)
|
|
|
|
|
clusterComCheck.checkDnodes(3)
|
|
|
|
|
|
|
|
|
|
tdSql.query("select * from information_schema.ins_mnodes;")
|
|
|
|
|
tdSql.checkRows(3)
|
|
|
|
|
if tdSql.getData(0, 2) == "leader":
|
|
|
|
|
tdLog.info(f"drop mnode on dnode {tdSql.getData(0,0)}")
|
|
|
|
|
tdSql.error(f"drop mnode on dnode {tdSql.getData(0,0)}")
|
|
|
|
|
elif tdSql.getData(1, 2) == "leader":
|
|
|
|
|
tdLog.info(f"drop mnode on dnode {tdSql.getData(0,0)}")
|
|
|
|
|
tdSql.error(f"drop mnode on dnode {tdSql.getData(0,0)}")
|
|
|
|
|
elif tdSql.getData(2, 2) == "leader":
|
|
|
|
|
tdLog.info(f"drop mnode on dnode {tdSql.getData(0,0)}")
|
|
|
|
|
tdSql.error(f"drop mnode on dnode {tdSql.getData(0,0)}")
|