提交 ada94e72 编写于 作者: S slguan

[TBASE-1128]

上级 026d0b49
...@@ -583,7 +583,7 @@ typedef struct { ...@@ -583,7 +583,7 @@ typedef struct {
int64_t compStorage; int64_t compStorage;
int64_t pointsWritten; int64_t pointsWritten;
uint8_t syncStatus; uint8_t syncStatus;
uint8_t reserved; uint8_t reserved[15];
} SVnodeLoad; } SVnodeLoad;
typedef struct { typedef struct {
......
...@@ -24,7 +24,12 @@ ...@@ -24,7 +24,12 @@
extern char version[]; extern char version[];
const int16_t sdbFileVersion = 0; const int16_t sdbFileVersion = 0;
int sdbExtConns = 0; int sdbExtConns = 0;
#ifdef CLUSTER
int sdbMaster = 0;
#else
int sdbMaster = 1; int sdbMaster = 1;
#endif
void *(*sdbInitIndexFp[])(int maxRows, int dataSize) = {sdbOpenStrHash, sdbOpenIntHash, sdbOpenIntHash}; void *(*sdbInitIndexFp[])(int maxRows, int dataSize) = {sdbOpenStrHash, sdbOpenIntHash, sdbOpenIntHash};
...@@ -98,7 +103,7 @@ int sdbOpenSdbFile(SSdbTable *pTable) { ...@@ -98,7 +103,7 @@ int sdbOpenSdbFile(SSdbTable *pTable) {
pTable->header.swVersion = swVersion.iversion; pTable->header.swVersion = swVersion.iversion;
pTable->header.sdbFileVersion = sdbFileVersion; pTable->header.sdbFileVersion = sdbFileVersion;
if (taosCalcChecksumAppend(0, (uint8_t *)(&pTable->header), size) < 0) { if (taosCalcChecksumAppend(0, (uint8_t *)(&pTable->header), size) < 0) {
sdbError("failed to get file header checksum, file: %s", pTable->fn); sdbError("failed to get file header checksum, file:%s", pTable->fn);
tclose(pTable->fd); tclose(pTable->fd);
return -1; return -1;
} }
...@@ -120,17 +125,17 @@ int sdbOpenSdbFile(SSdbTable *pTable) { ...@@ -120,17 +125,17 @@ int sdbOpenSdbFile(SSdbTable *pTable) {
ssize_t tsize = read(pTable->fd, &(pTable->header), size); ssize_t tsize = read(pTable->fd, &(pTable->header), size);
if (tsize < size) { if (tsize < size) {
sdbError("failed to read sdb file header, file: %s", pTable->fn); sdbError("failed to read sdb file header, file:%s", pTable->fn);
tclose(pTable->fd); tclose(pTable->fd);
return -1; return -1;
} }
if (pTable->header.swVersion != swVersion.iversion) { if (pTable->header.swVersion != swVersion.iversion) {
sdbWarn("sdb file %s version not match software version", pTable->fn); sdbWarn("sdb file:%s version not match software version", pTable->fn);
} }
if (!taosCheckChecksumWhole((uint8_t *)(&pTable->header), size)) { if (!taosCheckChecksumWhole((uint8_t *)(&pTable->header), size)) {
sdbError("sdb file header is broken since checksum mismatch, file: %s", pTable->fn); sdbError("sdb file header is broken since checksum mismatch, file:%s", pTable->fn);
tclose(pTable->fd); tclose(pTable->fd);
return -1; return -1;
} }
...@@ -173,17 +178,19 @@ int sdbInitTableByFile(SSdbTable *pTable) { ...@@ -173,17 +178,19 @@ int sdbInitTableByFile(SSdbTable *pTable) {
total_size = sizeof(SRowHead) + pTable->maxRowSize + sizeof(TSCKSUM); total_size = sizeof(SRowHead) + pTable->maxRowSize + sizeof(TSCKSUM);
SRowHead *rowHead = (SRowHead *)malloc(total_size); SRowHead *rowHead = (SRowHead *)malloc(total_size);
if (rowHead == NULL) { if (rowHead == NULL) {
sdbError("failed to allocate row head memory, sdb: %s", pTable->name); sdbError("failed to allocate row head memory, sdb:%s", pTable->name);
return -1; return -1;
} }
sdbTrace("open sdb file:%s for read", pTable->fn);
// Loop to read sdb file row by row // Loop to read sdb file row by row
while (1) { while (1) {
memset(rowHead, 0, total_size); memset(rowHead, 0, total_size);
bytes = read(pTable->fd, rowHead, sizeof(SRowHead)); bytes = read(pTable->fd, rowHead, sizeof(SRowHead));
if (bytes < 0) { if (bytes < 0) {
sdbError("failed to read sdb file: %s", pTable->fn); sdbError("failed to read sdb file:%s", pTable->fn);
goto sdb_exit1; goto sdb_exit1;
} }
...@@ -196,8 +203,8 @@ int sdbInitTableByFile(SSdbTable *pTable) { ...@@ -196,8 +203,8 @@ int sdbInitTableByFile(SSdbTable *pTable) {
} }
if (rowHead->rowSize < 0 || rowHead->rowSize > pTable->maxRowSize) { if (rowHead->rowSize < 0 || rowHead->rowSize > pTable->maxRowSize) {
sdbError("error row size in sdb file: %s rowSize: %d maxRowSize: %d", pTable->fn, rowHead->rowSize, sdbError("error row size in sdb file:%s, id:%d rowSize:%d maxRowSize:%d",
pTable->maxRowSize); pTable->fn, rowHead->id, rowHead->rowSize, pTable->maxRowSize);
pTable->size += sizeof(SRowHead); pTable->size += sizeof(SRowHead);
continue; continue;
} }
...@@ -208,13 +215,13 @@ int sdbInitTableByFile(SSdbTable *pTable) { ...@@ -208,13 +215,13 @@ int sdbInitTableByFile(SSdbTable *pTable) {
bytes = read(pTable->fd, rowHead->data, rowHead->rowSize + sizeof(TSCKSUM)); bytes = read(pTable->fd, rowHead->data, rowHead->rowSize + sizeof(TSCKSUM));
if (bytes < rowHead->rowSize + sizeof(TSCKSUM)) { if (bytes < rowHead->rowSize + sizeof(TSCKSUM)) {
// TODO: Here may cause pTable->size not end of the file // TODO: Here may cause pTable->size not end of the file
sdbError("failed to read sdb file: %s id: %d rowSize: %d", pTable->fn, rowHead->id, rowHead->rowSize); sdbError("failed to read sdb file:%s id:%d rowSize:%d", pTable->fn, rowHead->id, rowHead->rowSize);
break; break;
} }
real_size = sizeof(SRowHead) + rowHead->rowSize + sizeof(TSCKSUM); real_size = sizeof(SRowHead) + rowHead->rowSize + sizeof(TSCKSUM);
if (!taosCheckChecksumWhole((uint8_t *)rowHead, real_size)) { if (!taosCheckChecksumWhole((uint8_t *)rowHead, real_size)) {
sdbError("error sdb checksum, sdb: %s id: %d, skip", pTable->name, rowHead->id); sdbError("error sdb checksum, sdb:%s id:%d, skip", pTable->name, rowHead->id);
pTable->size += real_size; pTable->size += real_size;
continue; continue;
} }
...@@ -225,7 +232,7 @@ int sdbInitTableByFile(SSdbTable *pTable) { ...@@ -225,7 +232,7 @@ int sdbInitTableByFile(SSdbTable *pTable) {
if (pMetaRow == NULL) { // New object if (pMetaRow == NULL) { // New object
if (rowHead->id < 0) { if (rowHead->id < 0) {
/* assert(0); */ /* assert(0); */
sdbError("error sdb negative id: %d, sdb: %s, skip", rowHead->id, pTable->name); sdbError("error sdb negative id:%d, sdb:%s, skip", rowHead->id, pTable->name);
} else { } else {
rowMeta.id = rowHead->id; rowMeta.id = rowHead->id;
// TODO: Get rid of the rowMeta.offset and rowSize // TODO: Get rid of the rowMeta.offset and rowSize
...@@ -366,7 +373,7 @@ int64_t sdbInsertRow(void *handle, void *row, int rowSize) { ...@@ -366,7 +373,7 @@ int64_t sdbInsertRow(void *handle, void *row, int rowSize) {
pTable->id++; pTable->id++;
sdbVersion++; sdbVersion++;
if (pTable->keyType == SDB_KEYTYPE_AUTO) { if (pTable->keyType == SDB_KEYTYPE_AUTO) {
// TODO: here need to change // TODO:here need to change
*((uint32_t *)pObj) = ++pTable->autoIndex; *((uint32_t *)pObj) = ++pTable->autoIndex;
(*(pTable->appTool))(SDB_TYPE_ENCODE, pObj, rowHead->data, pTable->maxRowSize, &(rowHead->rowSize)); (*(pTable->appTool))(SDB_TYPE_ENCODE, pObj, rowHead->data, pTable->maxRowSize, &(rowHead->rowSize));
} }
...@@ -376,7 +383,7 @@ int64_t sdbInsertRow(void *handle, void *row, int rowSize) { ...@@ -376,7 +383,7 @@ int64_t sdbInsertRow(void *handle, void *row, int rowSize) {
rowHead->delimiter = SDB_DELIMITER; rowHead->delimiter = SDB_DELIMITER;
rowHead->id = pTable->id; rowHead->id = pTable->id;
if (taosCalcChecksumAppend(0, (uint8_t *)rowHead, real_size) < 0) { if (taosCalcChecksumAppend(0, (uint8_t *)rowHead, real_size) < 0) {
sdbError("failed to get checksum while inserting, sdb: %s", pTable->name); sdbError("failed to get checksum while inserting, sdb:%s", pTable->name);
pthread_mutex_unlock(&pTable->mutex); pthread_mutex_unlock(&pTable->mutex);
tfree(rowHead); tfree(rowHead);
return -1; return -1;
...@@ -470,7 +477,7 @@ int sdbDeleteRow(void *handle, void *row) { ...@@ -470,7 +477,7 @@ int sdbDeleteRow(void *handle, void *row) {
total_size = sizeof(SRowHead) + rowSize + sizeof(TSCKSUM); total_size = sizeof(SRowHead) + rowSize + sizeof(TSCKSUM);
rowHead = (SRowHead *)malloc(total_size); rowHead = (SRowHead *)malloc(total_size);
if (rowHead == NULL) { if (rowHead == NULL) {
sdbError("failed to allocate row head memory, sdb: %s", pTable->name); sdbError("failed to allocate row head memory, sdb:%s", pTable->name);
return -1; return -1;
} }
memset(rowHead, 0, total_size); memset(rowHead, 0, total_size);
...@@ -486,7 +493,7 @@ int sdbDeleteRow(void *handle, void *row) { ...@@ -486,7 +493,7 @@ int sdbDeleteRow(void *handle, void *row) {
rowHead->id = -(pTable->id); rowHead->id = -(pTable->id);
memcpy(rowHead->data, row, rowSize); memcpy(rowHead->data, row, rowSize);
if (taosCalcChecksumAppend(0, (uint8_t *)rowHead, total_size) < 0) { if (taosCalcChecksumAppend(0, (uint8_t *)rowHead, total_size) < 0) {
sdbError("failed to get checksum while inserting, sdb: %s", pTable->name); sdbError("failed to get checksum while inserting, sdb:%s", pTable->name);
pthread_mutex_unlock(&pTable->mutex); pthread_mutex_unlock(&pTable->mutex);
tfree(rowHead); tfree(rowHead);
return -1; return -1;
...@@ -498,7 +505,7 @@ int sdbDeleteRow(void *handle, void *row) { ...@@ -498,7 +505,7 @@ int sdbDeleteRow(void *handle, void *row) {
sdbFinishCommit(pTable); sdbFinishCommit(pTable);
pTable->numOfRows--; pTable->numOfRows--;
// TODO: Change the update list here // TODO:Change the update list here
sdbAddIntoUpdateList(pTable, SDB_TYPE_DELETE, pMetaRow); sdbAddIntoUpdateList(pTable, SDB_TYPE_DELETE, pMetaRow);
switch (pTable->keyType) { switch (pTable->keyType) {
case SDB_KEYTYPE_STRING: case SDB_KEYTYPE_STRING:
...@@ -556,7 +563,7 @@ int sdbUpdateRow(void *handle, void *row, int updateSize, char isUpdated) { ...@@ -556,7 +563,7 @@ int sdbUpdateRow(void *handle, void *row, int updateSize, char isUpdated) {
total_size = sizeof(SRowHead) + pTable->maxRowSize + sizeof(TSCKSUM); total_size = sizeof(SRowHead) + pTable->maxRowSize + sizeof(TSCKSUM);
SRowHead *rowHead = (SRowHead *)malloc(total_size); SRowHead *rowHead = (SRowHead *)malloc(total_size);
if (rowHead == NULL) { if (rowHead == NULL) {
sdbError("failed to allocate row head memory, sdb: %s", pTable->name); sdbError("failed to allocate row head memory, sdb:%s", pTable->name);
return -1; return -1;
} }
memset(rowHead, 0, total_size); memset(rowHead, 0, total_size);
...@@ -585,7 +592,7 @@ int sdbUpdateRow(void *handle, void *row, int updateSize, char isUpdated) { ...@@ -585,7 +592,7 @@ int sdbUpdateRow(void *handle, void *row, int updateSize, char isUpdated) {
rowHead->delimiter = SDB_DELIMITER; rowHead->delimiter = SDB_DELIMITER;
rowHead->id = pTable->id; rowHead->id = pTable->id;
if (taosCalcChecksumAppend(0, (uint8_t *)rowHead, real_size) < 0) { if (taosCalcChecksumAppend(0, (uint8_t *)rowHead, real_size) < 0) {
sdbError("failed to get checksum, sdb: %s id: %d", pTable->name, rowHead->id); sdbError("failed to get checksum, sdb:%s id:%d", pTable->name, rowHead->id);
pthread_mutex_unlock(&pTable->mutex); pthread_mutex_unlock(&pTable->mutex);
tfree(rowHead); tfree(rowHead);
return -1; return -1;
...@@ -640,7 +647,7 @@ int sdbBatchUpdateRow(void *handle, void *row, int rowSize) { ...@@ -640,7 +647,7 @@ int sdbBatchUpdateRow(void *handle, void *row, int rowSize) {
if (pTable == NULL || row == NULL || rowSize <= 0) return -1; if (pTable == NULL || row == NULL || rowSize <= 0) return -1;
pMeta = sdbGetRowMeta(handle, row); pMeta = sdbGetRowMeta(handle, row);
if (pMeta == NULL) { if (pMeta == NULL) {
sdbTrace("table: %s, record is not there, batch update failed", pTable->name); sdbTrace("table:%s, record is not there, batch update failed", pTable->name);
return -1; return -1;
} }
...@@ -650,7 +657,7 @@ int sdbBatchUpdateRow(void *handle, void *row, int rowSize) { ...@@ -650,7 +657,7 @@ int sdbBatchUpdateRow(void *handle, void *row, int rowSize) {
total_size = sizeof(SRowHead) + pTable->maxRowSize + sizeof(TSCKSUM); total_size = sizeof(SRowHead) + pTable->maxRowSize + sizeof(TSCKSUM);
SRowHead *rowHead = (SRowHead *)malloc(total_size); SRowHead *rowHead = (SRowHead *)malloc(total_size);
if (rowHead == NULL) { if (rowHead == NULL) {
sdbError("failed to allocate row head memory, sdb: %s", pTable->name); sdbError("failed to allocate row head memory, sdb:%s", pTable->name);
return -1; return -1;
} }
...@@ -748,12 +755,14 @@ void sdbResetTable(SSdbTable *pTable) { ...@@ -748,12 +755,14 @@ void sdbResetTable(SSdbTable *pTable) {
return; return;
} }
sdbTrace("open sdb file:%s for update", pTable->fn);
while (1) { while (1) {
memset(rowHead, 0, total_size); memset(rowHead, 0, total_size);
bytes = read(pTable->fd, rowHead, sizeof(SRowHead)); bytes = read(pTable->fd, rowHead, sizeof(SRowHead));
if (bytes < 0) { if (bytes < 0) {
sdbError("failed to read sdb file: %s", pTable->fn); sdbError("failed to read sdb file:%s", pTable->fn);
tfree(rowHead); tfree(rowHead);
return; return;
} }
...@@ -767,7 +776,7 @@ void sdbResetTable(SSdbTable *pTable) { ...@@ -767,7 +776,7 @@ void sdbResetTable(SSdbTable *pTable) {
} }
if (rowHead->rowSize < 0 || rowHead->rowSize > pTable->maxRowSize) { if (rowHead->rowSize < 0 || rowHead->rowSize > pTable->maxRowSize) {
sdbError("error row size in sdb file: %s rowSize: %d maxRowSize: %d", pTable->fn, rowHead->rowSize, sdbError("error row size in sdb file:%s rowSize:%d maxRowSize:%d", pTable->fn, rowHead->rowSize,
pTable->maxRowSize); pTable->maxRowSize);
pTable->size += sizeof(SRowHead); pTable->size += sizeof(SRowHead);
continue; continue;
...@@ -775,13 +784,13 @@ void sdbResetTable(SSdbTable *pTable) { ...@@ -775,13 +784,13 @@ void sdbResetTable(SSdbTable *pTable) {
bytes = read(pTable->fd, rowHead->data, rowHead->rowSize + sizeof(TSCKSUM)); bytes = read(pTable->fd, rowHead->data, rowHead->rowSize + sizeof(TSCKSUM));
if (bytes < rowHead->rowSize + sizeof(TSCKSUM)) { if (bytes < rowHead->rowSize + sizeof(TSCKSUM)) {
sdbError("failed to read sdb file: %s id: %d rowSize: %d", pTable->fn, rowHead->id, rowHead->rowSize); sdbError("failed to read sdb file:%s id:%d rowSize:%d", pTable->fn, rowHead->id, rowHead->rowSize);
break; break;
} }
real_size = sizeof(SRowHead) + rowHead->rowSize + sizeof(TSCKSUM); real_size = sizeof(SRowHead) + rowHead->rowSize + sizeof(TSCKSUM);
if (!taosCheckChecksumWhole((uint8_t *)rowHead, real_size)) { if (!taosCheckChecksumWhole((uint8_t *)rowHead, real_size)) {
sdbError("error sdb checksum, sdb: %s id: %d, skip", pTable->name, rowHead->id); sdbError("error sdb checksum, sdb:%s id:%d, skip", pTable->name, rowHead->id);
pTable->size += real_size; pTable->size += real_size;
continue; continue;
} }
...@@ -790,10 +799,10 @@ void sdbResetTable(SSdbTable *pTable) { ...@@ -790,10 +799,10 @@ void sdbResetTable(SSdbTable *pTable) {
pMetaRow = sdbGetRow(pTable, rowHead->data); pMetaRow = sdbGetRow(pTable, rowHead->data);
if (pMetaRow == NULL) { // New object if (pMetaRow == NULL) { // New object
if (rowHead->id < 0) { if (rowHead->id < 0) {
sdbError("error sdb negative id: %d, sdb: %s, skip", rowHead->id, pTable->name); sdbError("error sdb negative id:%d, sdb:%s, skip", rowHead->id, pTable->name);
} else { } else {
rowMeta.id = rowHead->id; rowMeta.id = rowHead->id;
// TODO: Get rid of the rowMeta.offset and rowSize // TODO:Get rid of the rowMeta.offset and rowSize
rowMeta.offset = pTable->size; rowMeta.offset = pTable->size;
rowMeta.rowSize = rowHead->rowSize; rowMeta.rowSize = rowHead->rowSize;
rowMeta.row = (*(pTable->appTool))(SDB_TYPE_DECODE, NULL, rowHead->data, rowHead->rowSize, NULL); rowMeta.row = (*(pTable->appTool))(SDB_TYPE_DECODE, NULL, rowHead->data, rowHead->rowSize, NULL);
...@@ -826,7 +835,7 @@ void sdbResetTable(SSdbTable *pTable) { ...@@ -826,7 +835,7 @@ void sdbResetTable(SSdbTable *pTable) {
sdbTrace("table:%s is updated, sdbVerion:%ld id:%ld", pTable->name, sdbVersion, pTable->id); sdbTrace("table:%s is updated, sdbVerion:%ld id:%ld", pTable->name, sdbVersion, pTable->id);
} }
// TODO: A problem here : use snapshot file to sync another node will cause // TODO:A problem here :use snapshot file to sync another node will cause
// problem // problem
void sdbSaveSnapShot(void *handle) { void sdbSaveSnapShot(void *handle) {
SSdbTable *pTable = (SSdbTable *)handle; SSdbTable *pTable = (SSdbTable *)handle;
...@@ -856,7 +865,7 @@ void sdbSaveSnapShot(void *handle) { ...@@ -856,7 +865,7 @@ void sdbSaveSnapShot(void *handle) {
total_size = sizeof(SRowHead) + pTable->maxRowSize + sizeof(TSCKSUM); total_size = sizeof(SRowHead) + pTable->maxRowSize + sizeof(TSCKSUM);
SRowHead *rowHead = (SRowHead *)malloc(total_size); SRowHead *rowHead = (SRowHead *)malloc(total_size);
if (rowHead == NULL) { if (rowHead == NULL) {
sdbError("failed to allocate memory while saving SDB snapshot, sdb: %s", pTable->name); sdbError("failed to allocate memory while saving SDB snapshot, sdb:%s", pTable->name);
return; return;
} }
memset(rowHead, 0, size); memset(rowHead, 0, size);
......
...@@ -43,6 +43,11 @@ int mgmtProcessMeterCfgMsg(char *cont, int contLen, SDnodeObj *pObj) { ...@@ -43,6 +43,11 @@ int mgmtProcessMeterCfgMsg(char *cont, int contLen, SDnodeObj *pObj) {
SMeterCfgMsg *pCfg = (SMeterCfgMsg *)cont; SMeterCfgMsg *pCfg = (SMeterCfgMsg *)cont;
SVgObj * pVgroup; SVgObj * pVgroup;
if (!sdbMaster) {
taosSendSimpleRspToDnode(pObj, TSDB_MSG_TYPE_METER_CFG_RSP, TSDB_CODE_REDIRECT);
return 0;
}
int vnode = htonl(pCfg->vnode); int vnode = htonl(pCfg->vnode);
int sid = htonl(pCfg->sid); int sid = htonl(pCfg->sid);
...@@ -51,6 +56,7 @@ int mgmtProcessMeterCfgMsg(char *cont, int contLen, SDnodeObj *pObj) { ...@@ -51,6 +56,7 @@ int mgmtProcessMeterCfgMsg(char *cont, int contLen, SDnodeObj *pObj) {
taosSendSimpleRspToDnode(pObj, TSDB_MSG_TYPE_METER_CFG_RSP, TSDB_CODE_SERV_OUT_OF_MEMORY); taosSendSimpleRspToDnode(pObj, TSDB_MSG_TYPE_METER_CFG_RSP, TSDB_CODE_SERV_OUT_OF_MEMORY);
return 0; return 0;
} }
pMsg = pStart; pMsg = pStart;
if (vnode < pObj->numOfVnodes) { if (vnode < pObj->numOfVnodes) {
...@@ -87,10 +93,18 @@ int mgmtProcessVpeerCfgMsg(char *cont, int contLen, SDnodeObj *pObj) { ...@@ -87,10 +93,18 @@ int mgmtProcessVpeerCfgMsg(char *cont, int contLen, SDnodeObj *pObj) {
SVpeerCfgMsg *pCfg = (SVpeerCfgMsg *)cont; SVpeerCfgMsg *pCfg = (SVpeerCfgMsg *)cont;
SVgObj * pVgroup = NULL; SVgObj * pVgroup = NULL;
if (!sdbMaster) {
taosSendSimpleRspToDnode(pObj, TSDB_MSG_TYPE_VPEER_CFG_RSP, TSDB_CODE_REDIRECT);
return 0;
}
int vnode = htonl(pCfg->vnode); int vnode = htonl(pCfg->vnode);
pStart = taosBuildRspMsgToDnode(pObj, TSDB_MSG_TYPE_VPEER_CFG_RSP); pStart = taosBuildRspMsgToDnode(pObj, TSDB_MSG_TYPE_VPEER_CFG_RSP);
if (pStart == NULL) return 0; if (pStart == NULL) {
taosSendSimpleRspToDnode(pObj, TSDB_MSG_TYPE_VPEER_CFG_RSP, TSDB_CODE_SERV_OUT_OF_MEMORY);
return 0;
}
pMsg = pStart; pMsg = pStart;
if (vnode < pObj->numOfVnodes) pVgroup = mgmtGetVgroup(pObj->vload[vnode].vgId); if (vnode < pObj->numOfVnodes) pVgroup = mgmtGetVgroup(pObj->vload[vnode].vgId);
...@@ -121,6 +135,11 @@ int mgmtProcessFreeVnodeRsp(char *msg, int msgLen, SDnodeObj *pObj) { return 0; ...@@ -121,6 +135,11 @@ int mgmtProcessFreeVnodeRsp(char *msg, int msgLen, SDnodeObj *pObj) { return 0;
int mgmtProcessVPeersRsp(char *msg, int msgLen, SDnodeObj *pObj) { int mgmtProcessVPeersRsp(char *msg, int msgLen, SDnodeObj *pObj) {
STaosRsp *pRsp = (STaosRsp *)msg; STaosRsp *pRsp = (STaosRsp *)msg;
if (!sdbMaster) {
taosSendSimpleRspToDnode(pObj, TSDB_MSG_TYPE_VPEERS_RSP, TSDB_CODE_REDIRECT);
return 0;
}
SDbObj *pDb = mgmtGetDb(pRsp->more); SDbObj *pDb = mgmtGetDb(pRsp->more);
if (!pDb) { if (!pDb) {
mError("dnode:%s, db not find, code:%d", taosIpStr(pObj->privateIp), pRsp->code); mError("dnode:%s, db not find, code:%d", taosIpStr(pObj->privateIp), pRsp->code);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册