[TD-9] error while get metadata
This commit is contained in:
parent
66de5c58c9
commit
6f65c5a961
|
@ -725,13 +725,13 @@ static int32_t mgmtDoGetChildTableMeta(SDbObj *pDb, SChildTableObj *pTable, STab
|
||||||
|
|
||||||
if (pTable->info.type == TSDB_CHILD_TABLE) {
|
if (pTable->info.type == TSDB_CHILD_TABLE) {
|
||||||
pMeta->sversion = htons(pTable->superTable->sversion);
|
pMeta->sversion = htons(pTable->superTable->sversion);
|
||||||
pMeta->numOfTags = htons(pTable->superTable->numOfTags);
|
pMeta->numOfTags = 0;
|
||||||
pMeta->numOfColumns = htons(pTable->superTable->numOfColumns);
|
pMeta->numOfColumns = htons((int16_t)pTable->superTable->numOfColumns);
|
||||||
pMeta->contLen = sizeof(STableMetaMsg) + mgmtSetSchemaFromSuperTable(pMeta->schema, pTable->superTable);
|
pMeta->contLen = sizeof(STableMetaMsg) + mgmtSetSchemaFromSuperTable(pMeta->schema, pTable->superTable);
|
||||||
} else {
|
} else {
|
||||||
pMeta->sversion = htons(pTable->sversion);
|
pMeta->sversion = htons(pTable->sversion);
|
||||||
pMeta->numOfTags = 0;
|
pMeta->numOfTags = 0;
|
||||||
pMeta->numOfColumns = htons(pTable->numOfColumns);
|
pMeta->numOfColumns = htons((int16_t)pTable->numOfColumns);
|
||||||
pMeta->contLen = sizeof(STableMetaMsg) + mgmtSetSchemaFromNormalTable(pMeta->schema, pTable);
|
pMeta->contLen = sizeof(STableMetaMsg) + mgmtSetSchemaFromNormalTable(pMeta->schema, pTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -758,9 +758,9 @@ static int32_t mgmtDoGetChildTableMeta(SDbObj *pDb, SChildTableObj *pTable, STab
|
||||||
|
|
||||||
void mgmtGetChildTableMeta(SQueuedMsg *pMsg, SChildTableObj *pTable) {
|
void mgmtGetChildTableMeta(SQueuedMsg *pMsg, SChildTableObj *pTable) {
|
||||||
SCMTableInfoMsg *pInfo = pMsg->pCont;
|
SCMTableInfoMsg *pInfo = pMsg->pCont;
|
||||||
SDbObj *pDb = mgmtGetDbByTableId(pTable->info.tableId);
|
SDbObj *pDb = mgmtGetDbByTableId(pInfo->tableId);
|
||||||
if (pDb == NULL || pDb->dirty) {
|
if (pDb == NULL || pDb->dirty) {
|
||||||
mError("table:%s, failed to get table meta, db not selected", pTable->info.tableId);
|
mError("table:%s, failed to get table meta, db not selected", pInfo->tableId);
|
||||||
mgmtSendSimpleResp(pMsg->thandle, TSDB_CODE_DB_NOT_SELECTED);
|
mgmtSendSimpleResp(pMsg->thandle, TSDB_CODE_DB_NOT_SELECTED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -877,7 +877,7 @@ static STableInfo* mgmtGetTableByPos(uint32_t dnodeId, int32_t vnode, int32_t si
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return pVgroup->tableList[sid];
|
return (STableInfo *)pVgroup->tableList[sid];
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mgmtProcessTableCfgMsg(SRpcMsg *rpcMsg) {
|
static void mgmtProcessTableCfgMsg(SRpcMsg *rpcMsg) {
|
||||||
|
|
|
@ -610,8 +610,8 @@ void mgmtGetSuperTableMeta(SQueuedMsg *pMsg, SSuperTableObj *pTable) {
|
||||||
pMeta->uid = htobe64(pTable->uid);
|
pMeta->uid = htobe64(pTable->uid);
|
||||||
pMeta->sversion = htons(pTable->sversion);
|
pMeta->sversion = htons(pTable->sversion);
|
||||||
pMeta->precision = pDb->cfg.precision;
|
pMeta->precision = pDb->cfg.precision;
|
||||||
pMeta->numOfTags = pTable->numOfTags;
|
pMeta->numOfTags = htons((int16_t)pTable->numOfTags);
|
||||||
pMeta->numOfColumns = htons(pTable->numOfColumns);
|
pMeta->numOfColumns = htons((int16_t)pTable->numOfColumns);
|
||||||
pMeta->tableType = pTable->info.type;
|
pMeta->tableType = pTable->info.type;
|
||||||
pMeta->contLen = sizeof(STableMetaMsg) + mgmtSetSchemaFromSuperTable(pMeta->schema, pTable);
|
pMeta->contLen = sizeof(STableMetaMsg) + mgmtSetSchemaFromSuperTable(pMeta->schema, pTable);
|
||||||
strcpy(pMeta->tableId, pTable->info.tableId);
|
strcpy(pMeta->tableId, pTable->info.tableId);
|
||||||
|
|
|
@ -230,6 +230,13 @@ static void mgmtProcessTableMetaMsg(SQueuedMsg *pMsg) {
|
||||||
SCMTableInfoMsg *pInfo = pMsg->pCont;
|
SCMTableInfoMsg *pInfo = pMsg->pCont;
|
||||||
mTrace("table:%s, table meta msg is received from thandle:%p", pInfo->tableId, pMsg->thandle);
|
mTrace("table:%s, table meta msg is received from thandle:%p", pInfo->tableId, pMsg->thandle);
|
||||||
|
|
||||||
|
pMsg->pDb = mgmtGetDbByTableId(pInfo->tableId);
|
||||||
|
if (pMsg->pDb == NULL || pMsg->pDb->dirty) {
|
||||||
|
mError("table:%s, failed to get table meta, db not selected", pInfo->tableId);
|
||||||
|
mgmtSendSimpleResp(pMsg->thandle, TSDB_CODE_DB_NOT_SELECTED);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
STableInfo *pTable = mgmtGetTable(pInfo->tableId);
|
STableInfo *pTable = mgmtGetTable(pInfo->tableId);
|
||||||
if (pTable == NULL || pTable->type != TSDB_SUPER_TABLE) {
|
if (pTable == NULL || pTable->type != TSDB_SUPER_TABLE) {
|
||||||
mgmtGetChildTableMeta(pMsg, (SChildTableObj *)pTable);
|
mgmtGetChildTableMeta(pMsg, (SChildTableObj *)pTable);
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include "mgmtDClient.h"
|
#include "mgmtDClient.h"
|
||||||
#include "mgmtDnode.h"
|
#include "mgmtDnode.h"
|
||||||
#include "mgmtDServer.h"
|
#include "mgmtDServer.h"
|
||||||
|
#include "mgmtMnode.h"
|
||||||
#include "mgmtProfile.h"
|
#include "mgmtProfile.h"
|
||||||
#include "mgmtSdb.h"
|
#include "mgmtSdb.h"
|
||||||
#include "mgmtShell.h"
|
#include "mgmtShell.h"
|
||||||
|
@ -483,17 +484,6 @@ SMDCreateVnodeMsg *mgmtBuildCreateVnodeMsg(SVgObj *pVgroup) {
|
||||||
return pVnode;
|
return pVnode;
|
||||||
}
|
}
|
||||||
|
|
||||||
static SVgObj *mgmtGetVgroupInDnode(uint32_t dnodeId, int32_t vgId) {
|
|
||||||
if (vnovgId < 1 || dnodeId < 1) return NULL;
|
|
||||||
|
|
||||||
SDnodeObj *pDnode = mgmtGetDnode(dnodeId);
|
|
||||||
if (pDnode == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return mgmtGetVgroup(vgId);
|
|
||||||
}
|
|
||||||
|
|
||||||
SRpcIpSet mgmtGetIpSetFromVgroup(SVgObj *pVgroup) {
|
SRpcIpSet mgmtGetIpSetFromVgroup(SVgObj *pVgroup) {
|
||||||
SRpcIpSet ipSet = {
|
SRpcIpSet ipSet = {
|
||||||
.numOfIps = pVgroup->numOfVnodes,
|
.numOfIps = pVgroup->numOfVnodes,
|
||||||
|
@ -657,19 +647,26 @@ static void mgmtProcessVnodeCfgMsg(SRpcMsg *rpcMsg) {
|
||||||
if (mgmtCheckRedirect(rpcMsg->handle)) return;
|
if (mgmtCheckRedirect(rpcMsg->handle)) return;
|
||||||
|
|
||||||
SDMConfigVnodeMsg *pCfg = (SDMConfigVnodeMsg *) rpcMsg->pCont;
|
SDMConfigVnodeMsg *pCfg = (SDMConfigVnodeMsg *) rpcMsg->pCont;
|
||||||
pCfg->dnodeId = htonl(pCfg->dnode);
|
pCfg->dnodeId = htonl(pCfg->dnodeId);
|
||||||
pCfg->vgId = htonl(pCfg->vnode);
|
pCfg->vgId = htonl(pCfg->vgId);
|
||||||
|
|
||||||
SVgObj *pVgroup = mgmtGetVgroupInDnode(pCfg->dnodeId, pCfg->vgId);
|
SDnodeObj *pDnode = mgmtGetDnode(pCfg->dnodeId);
|
||||||
|
if (pDnode == NULL) {
|
||||||
|
mTrace("dnode:%s, invalid dnode", taosIpStr(pCfg->dnodeId), pCfg->vgId);
|
||||||
|
mgmtSendSimpleResp(rpcMsg->handle, TSDB_CODE_NOT_ACTIVE_VNODE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
SVgObj *pVgroup = mgmtGetVgroup(pCfg->vgId);
|
||||||
if (pVgroup == NULL) {
|
if (pVgroup == NULL) {
|
||||||
mTrace("dnode:%s, vnode:%d, no vgroup info", taosIpStr(pCfg->dnode), pCfg->vnode);
|
mTrace("dnode:%s, vgId:%d, no vgroup info", taosIpStr(pCfg->dnodeId), pCfg->vgId);
|
||||||
mgmtSendSimpleResp(rpcMsg->handle, TSDB_CODE_NOT_ACTIVE_VNODE);
|
mgmtSendSimpleResp(rpcMsg->handle, TSDB_CODE_NOT_ACTIVE_VNODE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mgmtSendSimpleResp(rpcMsg->handle, TSDB_CODE_SUCCESS);
|
mgmtSendSimpleResp(rpcMsg->handle, TSDB_CODE_SUCCESS);
|
||||||
|
|
||||||
SRpcIpSet ipSet = mgmtGetIpSetFromIp(pCfg->dnode);
|
SRpcIpSet ipSet = mgmtGetIpSetFromIp(pDnode->privateIp);
|
||||||
mgmtSendCreateVnodeMsg(pVgroup, &ipSet, NULL);
|
mgmtSendCreateVnodeMsg(pVgroup, &ipSet, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue