fix refcount error while drop stable
This commit is contained in:
parent
4a6c170d96
commit
19e2109614
|
@ -107,42 +107,41 @@ static int32_t mnodeChildTableActionInsert(SSdbOper *pOper) {
|
||||||
SVgObj *pVgroup = mnodeGetVgroup(pTable->vgId);
|
SVgObj *pVgroup = mnodeGetVgroup(pTable->vgId);
|
||||||
if (pVgroup == NULL) {
|
if (pVgroup == NULL) {
|
||||||
mError("ctable:%s, not in vgId:%d", pTable->info.tableId, pTable->vgId);
|
mError("ctable:%s, not in vgId:%d", pTable->info.tableId, pTable->vgId);
|
||||||
return TSDB_CODE_MND_VGROUP_NOT_EXIST;
|
|
||||||
}
|
|
||||||
mnodeDecVgroupRef(pVgroup);
|
|
||||||
|
|
||||||
SDbObj *pDb = mnodeGetDb(pVgroup->dbName);
|
|
||||||
if (pDb == NULL) {
|
|
||||||
mError("ctable:%s, vgId:%d not in db:%s", pTable->info.tableId, pVgroup->vgId, pVgroup->dbName);
|
|
||||||
return TSDB_CODE_MND_INVALID_DB;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pDb->status != TSDB_DB_STATUS_READY) {
|
SDbObj *pDb = NULL;
|
||||||
mError("db:%s, status:%d, in dropping", pDb->name, pDb->status);
|
if (pVgroup != NULL) {
|
||||||
return TSDB_CODE_MND_DB_IN_DROPPING;
|
pDb = mnodeGetDb(pVgroup->dbName);
|
||||||
|
if (pDb == NULL) {
|
||||||
|
mError("ctable:%s, vgId:%d not in db:%s", pTable->info.tableId, pVgroup->vgId, pVgroup->dbName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
mnodeDecDbRef(pDb);
|
|
||||||
|
|
||||||
SAcctObj *pAcct = mnodeGetAcct(pDb->acct);
|
SAcctObj *pAcct = NULL;
|
||||||
if (pAcct == NULL) {
|
if (pDb != NULL) {
|
||||||
mError("ctable:%s, acct:%s not exists", pTable->info.tableId, pDb->acct);
|
pAcct = mnodeGetAcct(pDb->acct);
|
||||||
return TSDB_CODE_MND_INVALID_ACCT;
|
if (pAcct == NULL) {
|
||||||
|
mError("ctable:%s, acct:%s not exists", pTable->info.tableId, pDb->acct);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
mnodeDecAcctRef(pAcct);
|
|
||||||
|
|
||||||
if (pTable->info.type == TSDB_CHILD_TABLE) {
|
if (pTable->info.type == TSDB_CHILD_TABLE) {
|
||||||
// add ref
|
// add ref
|
||||||
pTable->superTable = mnodeGetSuperTableByUid(pTable->suid);
|
pTable->superTable = mnodeGetSuperTableByUid(pTable->suid);
|
||||||
mnodeAddTableIntoStable(pTable->superTable, pTable);
|
mnodeAddTableIntoStable(pTable->superTable, pTable);
|
||||||
grantAdd(TSDB_GRANT_TIMESERIES, pTable->superTable->numOfColumns - 1);
|
grantAdd(TSDB_GRANT_TIMESERIES, pTable->superTable->numOfColumns - 1);
|
||||||
pAcct->acctInfo.numOfTimeSeries += (pTable->superTable->numOfColumns - 1);
|
if (pAcct) pAcct->acctInfo.numOfTimeSeries += (pTable->superTable->numOfColumns - 1);
|
||||||
} else {
|
} else {
|
||||||
grantAdd(TSDB_GRANT_TIMESERIES, pTable->numOfColumns - 1);
|
grantAdd(TSDB_GRANT_TIMESERIES, pTable->numOfColumns - 1);
|
||||||
pAcct->acctInfo.numOfTimeSeries += (pTable->numOfColumns - 1);
|
if (pAcct) pAcct->acctInfo.numOfTimeSeries += (pTable->numOfColumns - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
mnodeAddTableIntoDb(pDb);
|
if (pDb) mnodeAddTableIntoDb(pDb);
|
||||||
mnodeAddTableIntoVgroup(pVgroup, pTable);
|
if (pVgroup) mnodeAddTableIntoVgroup(pVgroup, pTable);
|
||||||
|
|
||||||
|
mnodeDecVgroupRef(pVgroup);
|
||||||
|
mnodeDecDbRef(pDb);
|
||||||
|
mnodeDecAcctRef(pAcct);
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue