[TD-3178]<feature> fix some bug
This commit is contained in:
parent
151fd31072
commit
cad3b55a43
|
@ -2798,7 +2798,6 @@ int32_t setKillInfo(SSqlObj* pSql, struct SSqlInfo* pInfo, int32_t killType) {
|
|||
}
|
||||
static int32_t setCompactVnodeInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) {
|
||||
SSqlCmd* pCmd = &pSql->cmd;
|
||||
//STableMetaInfo* pTableMetaInfo = tscGetTableMetaInfoFromCmd(pCmd, pCmd->clauseIndex, 0);
|
||||
pCmd->command = pInfo->type;
|
||||
|
||||
return TSDB_CODE_SUCCESS;
|
||||
|
|
|
@ -1575,7 +1575,7 @@ int tscBuildCompactMsg(SSqlObj *pSql, SSqlInfo *pInfo) {
|
|||
for (int32_t i = 0; i < size; i++) {
|
||||
tSqlExprItem* pSub = taosArrayGet(pList, i);
|
||||
tVariant* pVar = &pSub->pNode->value;
|
||||
if (pVar->nType >= TSDB_DATA_TYPE_TINYINT && pVar->nType <= TSDB_DATA_TYPE_INT) {
|
||||
if (pVar->nType >= TSDB_DATA_TYPE_TINYINT && pVar->nType <= TSDB_DATA_TYPE_BIGINT) {
|
||||
result[i] = (int32_t)(pVar->i64);
|
||||
} else {
|
||||
free(result);
|
||||
|
|
|
@ -61,6 +61,7 @@ int32_t dnodeInitShell() {
|
|||
dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_KILL_STREAM] = dnodeDispatchToMWriteQueue;
|
||||
dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_KILL_CONN] = dnodeDispatchToMWriteQueue;
|
||||
dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_CONFIG_DNODE]= dnodeDispatchToMWriteQueue;
|
||||
dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_COMPACT_VNODE]= dnodeDispatchToMWriteQueue;
|
||||
|
||||
// the following message shall be treated as mnode query
|
||||
dnodeProcessShellMsgFp[TSDB_MSG_TYPE_CM_HEARTBEAT] = dnodeDispatchToMReadQueue;
|
||||
|
|
|
@ -1226,26 +1226,35 @@ static int32_t mnodeSyncDb(SDbObj *pDb, SMnodeMsg *pMsg) {
|
|||
|
||||
|
||||
static int32_t mnodeCompact(SDbObj *pDb, SCompactMsg *pCompactMsg) {
|
||||
int32_t count = htonl(pCompactMsg->numOfVgroup);
|
||||
int32_t count = ntohs(pCompactMsg->numOfVgroup);
|
||||
int32_t *buf = malloc(sizeof(int32_t) * count);
|
||||
if (buf == NULL) {
|
||||
return TSDB_CODE_MND_OUT_OF_MEMORY;
|
||||
}
|
||||
for (int32_t i = 0; i < count; i++) {
|
||||
buf[i] = htonl(pCompactMsg->vgid[i]);
|
||||
buf[i] = ntohs(pCompactMsg->vgid[i]);
|
||||
}
|
||||
|
||||
// copy from mnodeSyncDb, so ugly
|
||||
void *pIter = NULL;
|
||||
for (int32_t i = 0; i < count; i++) {
|
||||
SVgObj *pVgroup = NULL;
|
||||
void *pIter = NULL;
|
||||
bool valid = false;
|
||||
while (1) {
|
||||
pIter = mnodeGetNextVgroup(pIter, &pVgroup);
|
||||
if (pVgroup == NULL) break;
|
||||
if (pVgroup->pDb == pDb) {
|
||||
if (pVgroup->pDb == pDb && pVgroup->vgId == buf[i]) {
|
||||
mnodeSendCompactVgroupMsg(pVgroup);
|
||||
mnodeDecVgroupRef(pVgroup);
|
||||
valid = true;
|
||||
break;
|
||||
}
|
||||
mnodeDecVgroupRef(pVgroup);
|
||||
}
|
||||
if (valid == false) {
|
||||
mLError("db:%s, cannot find valid vgId: %d", pDb->name, buf[i]);
|
||||
}
|
||||
}
|
||||
free(buf);
|
||||
|
||||
mLInfo("db:%s, trigger compact", pDb->name);
|
||||
|
@ -1279,6 +1288,7 @@ static int32_t mnodeProcessCompactMsg(SMnodeMsg *pMsg) {
|
|||
mDebug("db:%s, compact is received from thandle:%p", pCompact->db, pMsg->rpcMsg.handle);
|
||||
|
||||
if (pMsg->pDb == NULL) pMsg->pDb = mnodeGetDb(pCompact->db);
|
||||
if (pMsg->pDb == NULL) return TSDB_CODE_MND_DB_NOT_SELECTED;
|
||||
|
||||
if (pMsg->pDb->status != TSDB_DB_STATUS_READY) {
|
||||
mError("db:%s, status:%d, in dropping, ignore compact request", pCompact->db, pMsg->pDb->status);
|
||||
|
|
Loading…
Reference in New Issue