Merge branch 'fix/mnode' of https://github.com/taosdata/TDengine into mnode
This commit is contained in:
commit
3ba372a836
|
@ -92,6 +92,13 @@ void dmSendStatusReq(SDnodeMgmt *pMgmt) {
|
|||
SEpSet epSet = {0};
|
||||
dmGetMnodeEpSet(pMgmt->pData, &epSet);
|
||||
rpcSendRecv(pMgmt->msgCb.clientRpc, &epSet, &rpcMsg, &rpcRsp);
|
||||
if (rpcRsp.code != 0) {
|
||||
dError("failed to send status msg since %s, numOfEps:%d inUse:%d", tstrerror(rpcRsp.code), epSet.numOfEps,
|
||||
epSet.inUse);
|
||||
for (int32_t i = 0; i < epSet.numOfEps; ++i) {
|
||||
dDebug("index:%d, mnode ep:%s:%u", i, epSet.eps[i].fqdn, epSet.eps[i].port);
|
||||
}
|
||||
}
|
||||
dmProcessStatusRsp(pMgmt, &rpcRsp);
|
||||
}
|
||||
|
||||
|
|
|
@ -144,6 +144,7 @@ _OVER:
|
|||
|
||||
static int32_t mndClusterActionInsert(SSdb *pSdb, SClusterObj *pCluster) {
|
||||
mTrace("cluster:%" PRId64 ", perform insert action, row:%p", pCluster->id, pCluster);
|
||||
pSdb->pMnode->clusterId = pCluster->id;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -441,7 +441,7 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) {
|
|||
pDnode->numOfSupportVnodes = statusReq.numOfSupportVnodes;
|
||||
|
||||
SStatusRsp statusRsp = {0};
|
||||
statusRsp.dnodeVer = sdbGetTableVer(pMnode->pSdb, SDB_DNODE);
|
||||
statusRsp.dnodeVer = sdbGetTableVer(pMnode->pSdb, SDB_DNODE) + sdbGetTableVer(pMnode->pSdb, SDB_MNODE);
|
||||
statusRsp.dnodeCfg.dnodeId = pDnode->id;
|
||||
statusRsp.dnodeCfg.clusterId = pMnode->clusterId;
|
||||
statusRsp.pDnodeEps = taosArrayInit(mndGetDnodeSize(pMnode), sizeof(SDnodeEp));
|
||||
|
|
|
@ -233,7 +233,7 @@ void mndGetMnodeEpSet(SMnode *pMnode, SEpSet *pEpSet) {
|
|||
if (pObj->pDnode == NULL) {
|
||||
mError("mnode:%d, no corresponding dnode exists", pObj->id);
|
||||
} else {
|
||||
if (pObj->state == TAOS_SYNC_STATE_LEADER) {
|
||||
if (pObj->id == pMnode->selfDnodeId || pObj->state == TAOS_SYNC_STATE_LEADER) {
|
||||
pEpSet->inUse = pEpSet->numOfEps;
|
||||
}
|
||||
addEpIntoEpSet(pEpSet, pObj->pDnode->fqdn, pObj->pDnode->port);
|
||||
|
|
|
@ -363,28 +363,32 @@ int32_t syncNodeOnAppendEntriesCb(SSyncNode* ths, SyncAppendEntries* pMsg) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
ASSERT(hit == true);
|
||||
|
||||
SReConfigCbMeta cbMeta = {0};
|
||||
bool isDrop;
|
||||
syncNodeUpdateConfig(ths, &newSyncCfg, &isDrop);
|
||||
|
||||
// change isStandBy to normal
|
||||
if (!isDrop) {
|
||||
if (ths->state == TAOS_SYNC_STATE_LEADER) {
|
||||
syncNodeBecomeLeader(ths);
|
||||
} else {
|
||||
syncNodeBecomeFollower(ths);
|
||||
// I am in newConfig
|
||||
if (hit) {
|
||||
syncNodeUpdateConfig(ths, &newSyncCfg, &isDrop);
|
||||
|
||||
// change isStandBy to normal
|
||||
if (!isDrop) {
|
||||
if (ths->state == TAOS_SYNC_STATE_LEADER) {
|
||||
syncNodeBecomeLeader(ths);
|
||||
} else {
|
||||
syncNodeBecomeFollower(ths);
|
||||
}
|
||||
}
|
||||
|
||||
char* sOld = syncCfg2Str(&oldSyncCfg);
|
||||
char* sNew = syncCfg2Str(&newSyncCfg);
|
||||
sInfo("==config change== 0x11 old:%s new:%s isDrop:%d \n", sOld, sNew, isDrop);
|
||||
taosMemoryFree(sOld);
|
||||
taosMemoryFree(sNew);
|
||||
}
|
||||
|
||||
char* sOld = syncCfg2Str(&oldSyncCfg);
|
||||
char* sNew = syncCfg2Str(&newSyncCfg);
|
||||
sInfo("==config change== 0x11 old:%s new:%s isDrop:%d \n", sOld, sNew, isDrop);
|
||||
taosMemoryFree(sOld);
|
||||
taosMemoryFree(sNew);
|
||||
|
||||
// always call FpReConfigCb
|
||||
if (ths->pFsm->FpReConfigCb != NULL) {
|
||||
SReConfigCbMeta cbMeta = {0};
|
||||
cbMeta.code = 0;
|
||||
cbMeta.currentTerm = ths->pRaftStore->currentTerm;
|
||||
cbMeta.index = pEntry->index;
|
||||
|
|
|
@ -141,7 +141,10 @@ void syncMaybeAdvanceCommitIndex(SSyncNode* pSyncNode) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
ASSERT(hit == true);
|
||||
|
||||
if (pSyncNode->state == TAOS_SYNC_STATE_LEADER) {
|
||||
ASSERT(hit == true);
|
||||
}
|
||||
|
||||
bool isDrop;
|
||||
syncNodeUpdateConfig(pSyncNode, &newSyncCfg, &isDrop);
|
||||
|
|
|
@ -6,15 +6,6 @@ system sh/exec.sh -n dnode2 -s start
|
|||
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
|
||||
|
@ -30,63 +21,55 @@ endi
|
|||
|
||||
print =============== create dnodes
|
||||
sql create dnode $hostname port 7200
|
||||
sleep 2000
|
||||
|
||||
sql show dnodes;
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
$x = 0
|
||||
step1:
|
||||
$x = $x + 1
|
||||
sleep 500
|
||||
if $x == 20 then
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes -x step1
|
||||
if $data(1)[4] != ready then
|
||||
goto step1
|
||||
endi
|
||||
|
||||
if $data00 != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data10 != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print $data02
|
||||
if $data02 != 0 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data12 != 0 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data04 != ready then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data14 != ready 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
|
||||
if $data(2)[4] != ready then
|
||||
goto step1
|
||||
endi
|
||||
|
||||
print =============== create drop mnode 1
|
||||
sql_error create mnode on dnode 1
|
||||
sql_error drop mnode on dnode 1
|
||||
|
||||
print =============== create drop mnode 2
|
||||
sql create mnode on dnode 2
|
||||
|
||||
$x = 0
|
||||
step1:
|
||||
$x = $x + 1
|
||||
sleep 1000
|
||||
if $x == 20 then
|
||||
return -1
|
||||
endi
|
||||
sql show mnodes
|
||||
print $data(1)[0] $data(1)[1] $data(1)[2]
|
||||
print $data(2)[0] $data(2)[1] $data(2)[2]
|
||||
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
sql_error create mnode on dnode 2
|
||||
if $data(1)[0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data(1)[2] != LEADER then
|
||||
return -1
|
||||
endi
|
||||
if $data(2)[0] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data(2)[2] != FOLLOWER then
|
||||
goto step1
|
||||
endi
|
||||
|
||||
sleep 2000
|
||||
print ============ drop mnodes
|
||||
sql drop mnode on dnode 2
|
||||
sql show mnodes
|
||||
if $rows != 1 then
|
||||
|
@ -94,6 +77,35 @@ if $rows != 1 then
|
|||
endi
|
||||
sql_error drop mnode on dnode 2
|
||||
|
||||
$x = 0
|
||||
step2:
|
||||
$x = $x + 1
|
||||
sleep 1000
|
||||
if $x == 20 then
|
||||
return -1
|
||||
endi
|
||||
sql show mnodes
|
||||
print $data(1)[0] $data(1)[1] $data(1)[2]
|
||||
print $data(2)[0] $data(2)[1] $data(2)[2]
|
||||
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data(1)[0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data(1)[2] != LEADER then
|
||||
return -1
|
||||
endi
|
||||
if $data(2)[0] != NULL then
|
||||
goto step2
|
||||
endi
|
||||
if $data(2)[2] != NULL then
|
||||
goto step2
|
||||
endi
|
||||
|
||||
sleep 2000
|
||||
|
||||
print =============== create drop mnodes
|
||||
sql create mnode on dnode 2
|
||||
sql show mnodes
|
||||
|
@ -101,17 +113,32 @@ if $rows != 2 then
|
|||
return -1
|
||||
endi
|
||||
|
||||
print =============== restart
|
||||
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 dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
|
||||
sleep 2000
|
||||
$x = 0
|
||||
step3:
|
||||
$x = $x + 1
|
||||
sleep 1000
|
||||
if $x == 20 then
|
||||
return -1
|
||||
endi
|
||||
sql show mnodes
|
||||
print $data(1)[0] $data(1)[1] $data(1)[2]
|
||||
print $data(2)[0] $data(2)[1] $data(2)[2]
|
||||
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data(1)[0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data(1)[2] != LEADER then
|
||||
return -1
|
||||
endi
|
||||
if $data(2)[0] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data(2)[2] != FOLLOWER then
|
||||
goto step3
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
|
|
|
@ -21,29 +21,31 @@ endi
|
|||
|
||||
print =============== create dnodes
|
||||
sql create dnode $hostname port 7200
|
||||
sql create dnode $hostname port 7300
|
||||
sleep 2000
|
||||
|
||||
sql show dnodes;
|
||||
if $rows != 3 then
|
||||
return -1
|
||||
$x = 0
|
||||
step1:
|
||||
$x = $x + 1
|
||||
sleep 500
|
||||
if $x == 20 then
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes -x step1
|
||||
if $data(1)[4] != ready then
|
||||
goto step1
|
||||
endi
|
||||
|
||||
sql show mnodes;
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data00 != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data02 != LEADER then
|
||||
return -1
|
||||
if $data(2)[4] != ready then
|
||||
goto step1
|
||||
endi
|
||||
|
||||
print =============== create mnode 2
|
||||
sql create mnode on dnode 2
|
||||
|
||||
$x = 0
|
||||
step1:
|
||||
$x = $x + 1
|
||||
sleep 1000
|
||||
if $x == 20 then
|
||||
return -1
|
||||
endi
|
||||
sql show mnodes
|
||||
print $data(1)[0] $data(1)[1] $data(1)[2]
|
||||
print $data(2)[0] $data(2)[1] $data(2)[2]
|
||||
|
@ -60,8 +62,8 @@ endi
|
|||
if $data(2)[0] != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data(2)[2] == LEADER then
|
||||
return -1
|
||||
if $data(2)[2] != FOLLOWER then
|
||||
goto step1
|
||||
endi
|
||||
|
||||
print =============== create user
|
||||
|
@ -71,45 +73,47 @@ if $rows != 2 then
|
|||
return -1
|
||||
endi
|
||||
|
||||
#sql create database db
|
||||
#sql show databases
|
||||
#if $rows != 3 then
|
||||
# return -1
|
||||
#endi
|
||||
sql create database db
|
||||
sql show databases
|
||||
if $rows != 3 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sleep 5000
|
||||
|
||||
print =============== restart
|
||||
system sh/exec.sh -n dnode1 -s stop
|
||||
system sh/exec.sh -n dnode2 -s stop
|
||||
sleep 100
|
||||
return
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
|
||||
sql connect
|
||||
|
||||
sql show mnodes
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data(1)[0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data(1)[2] != LEADER then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show users
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
#sql show databases
|
||||
#if $rows != 3 then
|
||||
# return -1
|
||||
#endi
|
||||
sql show databases
|
||||
if $rows != 3 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
return
|
||||
sql show dnodes
|
||||
if $data(1)[4] != ready then
|
||||
return -1
|
||||
endi
|
||||
if $data(2)[4] != ready then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print =============== insert data
|
||||
sql create table db.stb (ts timestamp, i int) tags (j int)
|
||||
sql create table db.ctb using db.stb tags(1);
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop
|
||||
system sh/exec.sh -n dnode2 -s stop
|
|
@ -15,11 +15,10 @@ $x = 0
|
|||
step1:
|
||||
$x = $x + 1
|
||||
sleep 1000
|
||||
if $x == 10 then
|
||||
if $x == 20 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show dnodes
|
||||
sql show dnodes -x step1
|
||||
if $data(1)[4] != ready then
|
||||
goto step1
|
||||
endi
|
||||
|
@ -38,15 +37,10 @@ $x = 0
|
|||
step2:
|
||||
$x = $x + 1
|
||||
sleep 1000
|
||||
if $x == 10 then
|
||||
if $x == 20 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show mnodes
|
||||
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 step2
|
||||
if $data(1)[2] != LEADER then
|
||||
goto step2
|
||||
endi
|
||||
|
@ -64,44 +58,80 @@ 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
|
||||
|
||||
|
||||
return
|
||||
system sh/exec.sh -n dnode2 -s stop
|
||||
sleep 100
|
||||
return
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
|
||||
sleep 10000
|
||||
sql connect
|
||||
|
||||
sql show mnodes
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
if $data(1)[0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data(1)[2] != LEADER then
|
||||
return -1
|
||||
endi
|
||||
$x = 0
|
||||
step4:
|
||||
$x = $x + 1
|
||||
sleep 1000
|
||||
if $x == 20 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 users
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
#sql show databases
|
||||
#if $rows != 3 then
|
||||
# return -1
|
||||
#endi
|
||||
sleep 1000
|
||||
sql show dnodes
|
||||
if $data(2)[4] != ready then
|
||||
return -1
|
||||
endi
|
||||
if $data(3)[4] != ready then
|
||||
return -1
|
||||
endi
|
||||
|
||||
return
|
||||
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 == 20 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]
|
||||
|
||||
sql show users
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print =============== step6: stop dnode1
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
system sh/exec.sh -n dnode3 -s stop
|
||||
|
||||
$x = 0
|
||||
step6:
|
||||
$x = $x + 1
|
||||
sleep 1000
|
||||
if $x == 20 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]
|
||||
|
||||
sql show users
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop
|
||||
system sh/exec.sh -n dnode2 -s stop
|
||||
system sh/exec.sh -n dnode3 -s stop
|
Loading…
Reference in New Issue