TD-1652
This commit is contained in:
parent
22390a2a1d
commit
42e7be57a4
|
@ -468,8 +468,24 @@ void dnodeUpdateMnodeEpSetForPeer(SRpcEpSet *pEpSet) {
|
||||||
|
|
||||||
if (!mnodeIsRunning()) {
|
if (!mnodeIsRunning()) {
|
||||||
if (strcmp(pEpSet->fqdn[i], tsLocalFqdn) == 0 && pEpSet->port[i] == tsServerPort) {
|
if (strcmp(pEpSet->fqdn[i], tsLocalFqdn) == 0 && pEpSet->port[i] == tsServerPort) {
|
||||||
dInfo("mnode index:%d %s:%u should work as master", i, pEpSet->fqdn[i], pEpSet->port[i]);
|
dInfo("mnode index:%d %s:%u should work as mnode", i, pEpSet->fqdn[i], pEpSet->port[i]);
|
||||||
sdbUpdateSync();
|
bool find = false;
|
||||||
|
for (int i = 0; i < tsDMnodeInfos.nodeNum; ++i) {
|
||||||
|
if (tsDMnodeInfos.nodeInfos[i].nodeId == dnodeGetDnodeId()) {
|
||||||
|
dInfo("localEp found in mnode infos");
|
||||||
|
find = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!find) {
|
||||||
|
dInfo("localEp not found in mnode infos, will set into mnode infos");
|
||||||
|
tstrncpy(tsDMnodeInfos.nodeInfos[tsDMnodeInfos.nodeNum].nodeEp, tsLocalEp, TSDB_EP_LEN);
|
||||||
|
tsDMnodeInfos.nodeInfos[tsDMnodeInfos.nodeNum].nodeId = dnodeGetDnodeId();
|
||||||
|
tsDMnodeInfos.nodeNum++;
|
||||||
|
}
|
||||||
|
|
||||||
|
dnodeStartMnode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,19 +146,16 @@ void dnodeProcessModuleStatus(uint32_t moduleStatus) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool dnodeCheckMnodeStarting() {
|
bool dnodeStartMnode() {
|
||||||
if (tsModuleStatus & (1 << TSDB_MOD_MNODE)) return false;
|
if (tsModuleStatus & (1 << TSDB_MOD_MNODE)) {
|
||||||
|
dDebug("mnode module is already started, module status:%d", tsModuleStatus);
|
||||||
SDMMnodeInfos *mnodes = dnodeGetMnodeInfos();
|
return false;
|
||||||
for (int32_t i = 0; i < mnodes->nodeNum; ++i) {
|
|
||||||
SDMMnodeInfo *node = &mnodes->nodeInfos[i];
|
|
||||||
if (node->nodeId == dnodeGetDnodeId()) {
|
|
||||||
uint32_t moduleStatus = tsModuleStatus | (1 << TSDB_MOD_MNODE);
|
|
||||||
dInfo("start mnode module, module status:%d, new status:%d", tsModuleStatus, moduleStatus);
|
|
||||||
dnodeProcessModuleStatus(moduleStatus);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
uint32_t moduleStatus = tsModuleStatus | (1 << TSDB_MOD_MNODE);
|
||||||
|
dInfo("start mnode module, module status:%d, new status:%d", tsModuleStatus, moduleStatus);
|
||||||
|
dnodeProcessModuleStatus(moduleStatus);
|
||||||
|
|
||||||
|
sdbUpdateSync();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ void dnodeGetMnodeEpSetForPeer(void *epSet);
|
||||||
void dnodeGetMnodeEpSetForShell(void *epSet);
|
void dnodeGetMnodeEpSetForShell(void *epSet);
|
||||||
void * dnodeGetMnodeInfos();
|
void * dnodeGetMnodeInfos();
|
||||||
int32_t dnodeGetDnodeId();
|
int32_t dnodeGetDnodeId();
|
||||||
bool dnodeCheckMnodeStarting();
|
bool dnodeStartMnode();
|
||||||
|
|
||||||
void dnodeAddClientRspHandle(uint8_t msgType, void (*fp)(SRpcMsg *rpcMsg));
|
void dnodeAddClientRspHandle(uint8_t msgType, void (*fp)(SRpcMsg *rpcMsg));
|
||||||
void dnodeSendMsgToDnode(SRpcEpSet *epSet, SRpcMsg *rpcMsg);
|
void dnodeSendMsgToDnode(SRpcEpSet *epSet, SRpcMsg *rpcMsg);
|
||||||
|
|
|
@ -91,7 +91,6 @@ typedef struct {
|
||||||
} SSdbWriteWorkerPool;
|
} SSdbWriteWorkerPool;
|
||||||
|
|
||||||
extern void * tsMnodeTmr;
|
extern void * tsMnodeTmr;
|
||||||
static void * tsUpdateSyncTmr;
|
|
||||||
static SSdbObject tsSdbObj = {0};
|
static SSdbObject tsSdbObj = {0};
|
||||||
static taos_qset tsSdbWriteQset;
|
static taos_qset tsSdbWriteQset;
|
||||||
static taos_qall tsSdbWriteQall;
|
static taos_qall tsSdbWriteQall;
|
||||||
|
@ -298,16 +297,12 @@ static void sdbConfirmForward(void *ahandle, void *param, int32_t code) {
|
||||||
taosFreeQitem(pOper);
|
taosFreeQitem(pOper);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sdbUpdateSyncTmrFp(void *param, void *tmrId) { sdbUpdateSync(); }
|
|
||||||
|
|
||||||
void sdbUpdateSync() {
|
void sdbUpdateSync() {
|
||||||
if (!mnodeIsRunning()) {
|
if (!mnodeIsRunning()) {
|
||||||
mDebug("mnode not start yet, update sync info later");
|
mDebug("mnode not start yet, update sync info later");
|
||||||
if (dnodeCheckMnodeStarting()) {
|
|
||||||
taosTmrReset(sdbUpdateSyncTmrFp, 1000, NULL, tsMnodeTmr, &tsUpdateSyncTmr);
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mDebug("update sync info in sdb");
|
mDebug("update sync info in sdb");
|
||||||
|
|
||||||
SSyncCfg syncCfg = {0};
|
SSyncCfg syncCfg = {0};
|
||||||
|
|
|
@ -65,7 +65,7 @@ endi
|
||||||
|
|
||||||
print ============== step4
|
print ============== step4
|
||||||
sql drop dnode $hostname2
|
sql drop dnode $hostname2
|
||||||
sleep 16000
|
sleep 10000
|
||||||
|
|
||||||
sql show mnodes
|
sql show mnodes
|
||||||
$dnode1Role = $data2_1
|
$dnode1Role = $data2_1
|
||||||
|
|
Loading…
Reference in New Issue