diff --git a/include/dnode/mnode/mnode.h b/include/dnode/mnode/mnode.h index 1f205b3f11..4abf8c27fd 100644 --- a/include/dnode/mnode/mnode.h +++ b/include/dnode/mnode/mnode.h @@ -119,9 +119,9 @@ void mndPostProcessQueryMsg(SRpcMsg *pMsg); */ void mndGenerateMachineCode(); -void mndDumpSdb(); +int32_t mndDumpSdb(); -void mndDeleteTrans(); +int32_t mndDeleteTrans(); #ifdef __cplusplus } diff --git a/source/dnode/mgmt/exe/dmMain.c b/source/dnode/mgmt/exe/dmMain.c index 9f5db9b0eb..1fb5271a0e 100644 --- a/source/dnode/mgmt/exe/dmMain.c +++ b/source/dnode/mgmt/exe/dmMain.c @@ -433,7 +433,8 @@ int mainWindows(int argc, char **argv) { } if (global.dumpSdb) { - mndDumpSdb(); + int32_t code = 0; + TAOS_CHECK_RETURN(mndDumpSdb()); taosCleanupCfg(); taosCloseLog(); taosCleanupArgs(); @@ -442,6 +443,7 @@ int mainWindows(int argc, char **argv) { } if (global.deleteTrans) { + int32_t code = 0; TdFilePtr pFile; if ((code = dmCheckRunning(tsDataDir, &pFile)) != 0) { printf("failed to generate encrypt code since taosd is running, please stop it first, reason:%s", @@ -449,7 +451,7 @@ int mainWindows(int argc, char **argv) { return code; } - mndDeleteTrans(); + TAOS_CHECK_RETURN(mndDeleteTrans()); taosCleanupCfg(); taosCloseLog(); taosCleanupArgs(); diff --git a/source/dnode/mnode/impl/src/mndDump.c b/source/dnode/mnode/impl/src/mndDump.c index 7613282ef8..d1dd99b319 100644 --- a/source/dnode/mnode/impl/src/mndDump.c +++ b/source/dnode/mnode/impl/src/mndDump.c @@ -16,6 +16,7 @@ #define _DEFAULT_SOURCE #include "mndDb.h" #include "mndInt.h" +#include "mndShow.h" #include "mndStb.h" #include "sdb.h" #include "tconfig.h" @@ -46,7 +47,9 @@ char *i642str(int64_t val) { } void dumpFunc(SSdb *pSdb, SJson *json) { - void *pIter = NULL; + int32_t code = 0; + int32_t lino = 0; + void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "funcs"); while (1) { @@ -55,26 +58,30 @@ void dumpFunc(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "name", pObj->name); - (void)tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)); - (void)tjsonAddStringToObject(item, "funcType", i642str(pObj->funcType)); - (void)tjsonAddStringToObject(item, "scriptType", i642str(pObj->scriptType)); - (void)tjsonAddStringToObject(item, "align", i642str(pObj->align)); - (void)tjsonAddStringToObject(item, "outputType", i642str(pObj->outputType)); - (void)tjsonAddStringToObject(item, "outputLen", i642str(pObj->outputLen)); - (void)tjsonAddStringToObject(item, "bufSize", i642str(pObj->bufSize)); - (void)tjsonAddStringToObject(item, "signature", i642str(pObj->signature)); - (void)tjsonAddStringToObject(item, "commentSize", i642str(pObj->commentSize)); - (void)tjsonAddStringToObject(item, "codeSize", i642str(pObj->codeSize)); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "name", pObj->name), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "funcType", i642str(pObj->funcType)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "scriptType", i642str(pObj->scriptType)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "align", i642str(pObj->align)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "outputType", i642str(pObj->outputType)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "outputLen", i642str(pObj->outputLen)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "bufSize", i642str(pObj->bufSize)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "signature", i642str(pObj->signature)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "commentSize", i642str(pObj->commentSize)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "codeSize", i642str(pObj->codeSize)), pObj, &lino, _OVER); sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump func info at line:%d since %s", lino, tstrerror(code)); } void dumpDb(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; void *pIter = NULL; SJson *items = tjsonCreateObject(); - (void)tjsonAddItemToObject(json, "dbs", items); + TAOS_CHECK_GOTO(tjsonAddItemToObject(json, "dbs", items), &lino, _OVER); while (1) { SDbObj *pObj = NULL; @@ -82,65 +89,86 @@ void dumpDb(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToObject(items, "db", item); + RETRIEVE_CHECK_GOTO(tjsonAddItemToObject(items, "db", item), pObj, &lino, _OVER); - (void)tjsonAddStringToObject(item, "name", mndGetDbStr(pObj->name)); - (void)tjsonAddStringToObject(item, "acct", pObj->acct); - (void)tjsonAddStringToObject(item, "createUser", pObj->createUser); - (void)tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)); - (void)tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)); - (void)tjsonAddStringToObject(item, "uid", i642str(pObj->uid)); - (void)tjsonAddStringToObject(item, "cfgVersion", i642str(pObj->cfgVersion)); - (void)tjsonAddStringToObject(item, "vgVersion", i642str(pObj->vgVersion)); - (void)tjsonAddStringToObject(item, "numOfVgroups", i642str(pObj->cfg.numOfVgroups)); - (void)tjsonAddStringToObject(item, "numOfStables", i642str(pObj->cfg.numOfStables)); - (void)tjsonAddStringToObject(item, "buffer", i642str(pObj->cfg.buffer)); - (void)tjsonAddStringToObject(item, "pageSize", i642str(pObj->cfg.pageSize)); - (void)tjsonAddStringToObject(item, "pages", i642str(pObj->cfg.pages)); - (void)tjsonAddStringToObject(item, "cacheLastSize", i642str(pObj->cfg.cacheLastSize)); - (void)tjsonAddStringToObject(item, "daysPerFile", i642str(pObj->cfg.daysPerFile)); - (void)tjsonAddStringToObject(item, "daysToKeep0", i642str(pObj->cfg.daysToKeep0)); - (void)tjsonAddStringToObject(item, "daysToKeep1", i642str(pObj->cfg.daysToKeep1)); - (void)tjsonAddStringToObject(item, "daysToKeep2", i642str(pObj->cfg.daysToKeep2)); - (void)tjsonAddStringToObject(item, "minRows", i642str(pObj->cfg.minRows)); - (void)tjsonAddStringToObject(item, "maxRows", i642str(pObj->cfg.maxRows)); - (void)tjsonAddStringToObject(item, "precision", i642str(pObj->cfg.precision)); - (void)tjsonAddStringToObject(item, "compression", i642str(pObj->cfg.compression)); - (void)tjsonAddStringToObject(item, "encryptAlgorithm", i642str(pObj->cfg.encryptAlgorithm)); - (void)tjsonAddStringToObject(item, "replications", i642str(pObj->cfg.replications)); - (void)tjsonAddStringToObject(item, "strict", i642str(pObj->cfg.strict)); - (void)tjsonAddStringToObject(item, "cacheLast", i642str(pObj->cfg.cacheLast)); - (void)tjsonAddStringToObject(item, "hashMethod", i642str(pObj->cfg.hashMethod)); - (void)tjsonAddStringToObject(item, "hashPrefix", i642str(pObj->cfg.hashPrefix)); - (void)tjsonAddStringToObject(item, "hashSuffix", i642str(pObj->cfg.hashSuffix)); - (void)tjsonAddStringToObject(item, "sstTrigger", i642str(pObj->cfg.sstTrigger)); - (void)tjsonAddStringToObject(item, "tsdbPageSize", i642str(pObj->cfg.tsdbPageSize)); - (void)tjsonAddStringToObject(item, "schemaless", i642str(pObj->cfg.schemaless)); - (void)tjsonAddStringToObject(item, "walLevel", i642str(pObj->cfg.walLevel)); - (void)tjsonAddStringToObject(item, "walFsyncPeriod", i642str(pObj->cfg.walFsyncPeriod)); - (void)tjsonAddStringToObject(item, "walRetentionPeriod", i642str(pObj->cfg.walRetentionPeriod)); - (void)tjsonAddStringToObject(item, "walRetentionSize", i642str(pObj->cfg.walRetentionSize)); - (void)tjsonAddStringToObject(item, "walRollPeriod", i642str(pObj->cfg.walRollPeriod)); - (void)tjsonAddStringToObject(item, "walSegmentSize", i642str(pObj->cfg.walSegmentSize)); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "name", mndGetDbStr(pObj->name)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "acct", pObj->acct), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createUser", pObj->createUser), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "uid", i642str(pObj->uid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "cfgVersion", i642str(pObj->cfgVersion)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "vgVersion", i642str(pObj->vgVersion)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "numOfVgroups", i642str(pObj->cfg.numOfVgroups)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "numOfStables", i642str(pObj->cfg.numOfStables)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "buffer", i642str(pObj->cfg.buffer)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "pageSize", i642str(pObj->cfg.pageSize)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "pages", i642str(pObj->cfg.pages)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "cacheLastSize", i642str(pObj->cfg.cacheLastSize)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "daysPerFile", i642str(pObj->cfg.daysPerFile)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "daysToKeep0", i642str(pObj->cfg.daysToKeep0)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "daysToKeep1", i642str(pObj->cfg.daysToKeep1)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "daysToKeep2", i642str(pObj->cfg.daysToKeep2)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "minRows", i642str(pObj->cfg.minRows)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "maxRows", i642str(pObj->cfg.maxRows)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "precision", i642str(pObj->cfg.precision)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "compression", i642str(pObj->cfg.compression)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "encryptAlgorithm", i642str(pObj->cfg.encryptAlgorithm)), pObj, + &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "replications", i642str(pObj->cfg.replications)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "strict", i642str(pObj->cfg.strict)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "cacheLast", i642str(pObj->cfg.cacheLast)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "hashMethod", i642str(pObj->cfg.hashMethod)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "hashPrefix", i642str(pObj->cfg.hashPrefix)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "hashSuffix", i642str(pObj->cfg.hashSuffix)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "sstTrigger", i642str(pObj->cfg.sstTrigger)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "tsdbPageSize", i642str(pObj->cfg.tsdbPageSize)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "schemaless", i642str(pObj->cfg.schemaless)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "walLevel", i642str(pObj->cfg.walLevel)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "walFsyncPeriod", i642str(pObj->cfg.walFsyncPeriod)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "walRetentionPeriod", i642str(pObj->cfg.walRetentionPeriod)), pObj, + &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "walRetentionSize", i642str(pObj->cfg.walRetentionSize)), pObj, + &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "walRollPeriod", i642str(pObj->cfg.walRollPeriod)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "walSegmentSize", i642str(pObj->cfg.walSegmentSize)), pObj, &lino, + _OVER); - (void)tjsonAddStringToObject(item, "numOfRetensions", i642str(pObj->cfg.numOfRetensions)); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "numOfRetensions", i642str(pObj->cfg.numOfRetensions)), pObj, + &lino, _OVER); for (int32_t i = 0; i < pObj->cfg.numOfRetensions; ++i) { SJson *rentensions = tjsonAddArrayToObject(item, "rentensions"); SJson *rentension = tjsonCreateObject(); - (void)tjsonAddItemToArray(rentensions, rentension); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(rentensions, rentension), pObj, &lino, _OVER); SRetention *pRetension = taosArrayGet(pObj->cfg.pRetensions, i); - (void)tjsonAddStringToObject(item, "freq", i642str(pRetension->freq)); - (void)tjsonAddStringToObject(item, "freqUnit", i642str(pRetension->freqUnit)); - (void)tjsonAddStringToObject(item, "keep", i642str(pRetension->keep)); - (void)tjsonAddStringToObject(item, "keepUnit", i642str(pRetension->keepUnit)); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "freq", i642str(pRetension->freq)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "freqUnit", i642str(pRetension->freqUnit)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "keep", i642str(pRetension->keep)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "keepUnit", i642str(pRetension->keepUnit)), pObj, &lino, _OVER); } sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump db info at line:%d since %s", lino, tstrerror(code)); } void dumpStb(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "stbs"); @@ -150,62 +178,67 @@ void dumpStb(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "name", mndGetStbStr(pObj->name)); - (void)tjsonAddStringToObject(item, "db", mndGetDbStr(pObj->db)); - (void)tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)); - (void)tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)); - (void)tjsonAddStringToObject(item, "uid", i642str(pObj->uid)); - (void)tjsonAddStringToObject(item, "dbUid", i642str(pObj->dbUid)); - (void)tjsonAddStringToObject(item, "tagVer", i642str(pObj->tagVer)); - (void)tjsonAddStringToObject(item, "colVer", i642str(pObj->colVer)); - (void)tjsonAddStringToObject(item, "smaVer", i642str(pObj->smaVer)); - (void)tjsonAddStringToObject(item, "nextColId", i642str(pObj->nextColId)); - (void)tjsonAddStringToObject(item, "watermark1", i642str(pObj->watermark[0])); - (void)tjsonAddStringToObject(item, "watermark2", i642str(pObj->watermark[1])); - (void)tjsonAddStringToObject(item, "maxdelay0", i642str(pObj->maxdelay[0])); - (void)tjsonAddStringToObject(item, "maxdelay1", i642str(pObj->maxdelay[1])); - (void)tjsonAddStringToObject(item, "ttl", i642str(pObj->ttl)); - (void)tjsonAddStringToObject(item, "numOfFuncs", i642str(pObj->numOfFuncs)); - (void)tjsonAddStringToObject(item, "commentLen", i642str(pObj->commentLen)); - (void)tjsonAddStringToObject(item, "ast1Len", i642str(pObj->ast1Len)); - (void)tjsonAddStringToObject(item, "ast2Len", i642str(pObj->ast2Len)); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "name", mndGetStbStr(pObj->name)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "db", mndGetDbStr(pObj->db)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "uid", i642str(pObj->uid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "dbUid", i642str(pObj->dbUid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "tagVer", i642str(pObj->tagVer)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "colVer", i642str(pObj->colVer)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "smaVer", i642str(pObj->smaVer)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "nextColId", i642str(pObj->nextColId)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "watermark1", i642str(pObj->watermark[0])), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "watermark2", i642str(pObj->watermark[1])), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "maxdelay0", i642str(pObj->maxdelay[0])), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "maxdelay1", i642str(pObj->maxdelay[1])), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "ttl", i642str(pObj->ttl)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "numOfFuncs", i642str(pObj->numOfFuncs)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "commentLen", i642str(pObj->commentLen)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "ast1Len", i642str(pObj->ast1Len)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "ast2Len", i642str(pObj->ast2Len)), pObj, &lino, _OVER); - (void)tjsonAddStringToObject(item, "numOfColumns", i642str(pObj->numOfColumns)); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "numOfColumns", i642str(pObj->numOfColumns)), pObj, &lino, _OVER); SJson *columns = tjsonAddArrayToObject(item, "columns"); for (int32_t i = 0; i < pObj->numOfColumns; ++i) { SJson *column = tjsonCreateObject(); - (void)tjsonAddItemToArray(columns, column); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(columns, column), pObj, &lino, _OVER); SSchema *pColumn = &pObj->pColumns[i]; - (void)tjsonAddStringToObject(column, "type", i642str(pColumn->type)); - (void)tjsonAddStringToObject(column, "typestr", tDataTypes[pColumn->type].name); - (void)tjsonAddStringToObject(column, "flags", i642str(pColumn->flags)); - (void)tjsonAddStringToObject(column, "colId", i642str(pColumn->colId)); - (void)tjsonAddStringToObject(column, "bytes", i642str(pColumn->bytes)); - (void)tjsonAddStringToObject(column, "name", pColumn->name); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(column, "type", i642str(pColumn->type)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(column, "typestr", tDataTypes[pColumn->type].name), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(column, "flags", i642str(pColumn->flags)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(column, "colId", i642str(pColumn->colId)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(column, "bytes", i642str(pColumn->bytes)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(column, "name", pColumn->name), pObj, &lino, _OVER); } - (void)tjsonAddStringToObject(item, "numOfTags", i642str(pObj->numOfTags)); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "numOfTags", i642str(pObj->numOfTags)), pObj, &lino, _OVER); SJson *tags = tjsonAddArrayToObject(item, "tags"); for (int32_t i = 0; i < pObj->numOfTags; ++i) { SJson *tag = tjsonCreateObject(); - (void)tjsonAddItemToArray(tags, tag); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(tags, tag), pObj, &lino, _OVER); SSchema *pTag = &pObj->pTags[i]; - (void)tjsonAddStringToObject(tag, "type", i642str(pTag->type)); - (void)tjsonAddStringToObject(tag, "typestr", tDataTypes[pTag->type].name); - (void)tjsonAddStringToObject(tag, "flags", i642str(pTag->flags)); - (void)tjsonAddStringToObject(tag, "colId", i642str(pTag->colId)); - (void)tjsonAddStringToObject(tag, "bytes", i642str(pTag->bytes)); - (void)tjsonAddStringToObject(tag, "name", pTag->name); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(tag, "type", i642str(pTag->type)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(tag, "typestr", tDataTypes[pTag->type].name), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(tag, "flags", i642str(pTag->flags)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(tag, "colId", i642str(pTag->colId)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(tag, "bytes", i642str(pTag->bytes)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(tag, "name", pTag->name), pObj, &lino, _OVER); } sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump stable info at line:%d since %s", lino, tstrerror(code)); } void dumpSma(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "smas"); @@ -215,32 +248,37 @@ void dumpSma(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "name", mndGetStbStr(pObj->name)); - (void)tjsonAddStringToObject(item, "stb", mndGetStbStr(pObj->stb)); - (void)tjsonAddStringToObject(item, "db", mndGetDbStr(pObj->db)); - (void)tjsonAddStringToObject(item, "dstTbName", mndGetStbStr(pObj->dstTbName)); - (void)tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)); - (void)tjsonAddStringToObject(item, "uid", i642str(pObj->uid)); - (void)tjsonAddStringToObject(item, "stbUid", i642str(pObj->stbUid)); - (void)tjsonAddStringToObject(item, "dbUid", i642str(pObj->dbUid)); - (void)tjsonAddStringToObject(item, "dstTbUid", i642str(pObj->dstTbUid)); - (void)tjsonAddStringToObject(item, "intervalUnit", i642str(pObj->intervalUnit)); - (void)tjsonAddStringToObject(item, "slidingUnit", i642str(pObj->slidingUnit)); - (void)tjsonAddStringToObject(item, "timezone", i642str(pObj->timezone)); - (void)tjsonAddStringToObject(item, "dstVgId", i642str(pObj->dstVgId)); - (void)tjsonAddStringToObject(item, "interval", i642str(pObj->interval)); - (void)tjsonAddStringToObject(item, "offset", i642str(pObj->offset)); - (void)tjsonAddStringToObject(item, "sliding", i642str(pObj->sliding)); - (void)tjsonAddStringToObject(item, "exprLen", i642str(pObj->exprLen)); - (void)tjsonAddStringToObject(item, "tagsFilterLen", i642str(pObj->tagsFilterLen)); - (void)tjsonAddStringToObject(item, "sqlLen", i642str(pObj->sqlLen)); - (void)tjsonAddStringToObject(item, "astLen", i642str(pObj->astLen)); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "name", mndGetStbStr(pObj->name)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "stb", mndGetStbStr(pObj->stb)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "db", mndGetDbStr(pObj->db)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "dstTbName", mndGetStbStr(pObj->dstTbName)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "uid", i642str(pObj->uid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "stbUid", i642str(pObj->stbUid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "dbUid", i642str(pObj->dbUid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "dstTbUid", i642str(pObj->dstTbUid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "intervalUnit", i642str(pObj->intervalUnit)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "slidingUnit", i642str(pObj->slidingUnit)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "timezone", i642str(pObj->timezone)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "dstVgId", i642str(pObj->dstVgId)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "interval", i642str(pObj->interval)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "offset", i642str(pObj->offset)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "sliding", i642str(pObj->sliding)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "exprLen", i642str(pObj->exprLen)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "tagsFilterLen", i642str(pObj->tagsFilterLen)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "sqlLen", i642str(pObj->sqlLen)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "astLen", i642str(pObj->astLen)), pObj, &lino, _OVER); sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump sma info at line:%d since %s", lino, tstrerror(code)); } void dumpVgroup(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "vgroups"); @@ -250,28 +288,33 @@ void dumpVgroup(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "vgId", i642str(pObj->vgId)); - (void)tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)); - (void)tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)); - (void)tjsonAddStringToObject(item, "version", i642str(pObj->version)); - (void)tjsonAddStringToObject(item, "hashBegin", i642str(pObj->hashBegin)); - (void)tjsonAddStringToObject(item, "hashEnd", i642str(pObj->hashEnd)); - (void)tjsonAddStringToObject(item, "db", mndGetDbStr(pObj->dbName)); - (void)tjsonAddStringToObject(item, "dbUid", i642str(pObj->dbUid)); - (void)tjsonAddStringToObject(item, "isTsma", i642str(pObj->isTsma)); - (void)tjsonAddStringToObject(item, "replica", i642str(pObj->replica)); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "vgId", i642str(pObj->vgId)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "version", i642str(pObj->version)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "hashBegin", i642str(pObj->hashBegin)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "hashEnd", i642str(pObj->hashEnd)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "db", mndGetDbStr(pObj->dbName)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "dbUid", i642str(pObj->dbUid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "isTsma", i642str(pObj->isTsma)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "replica", i642str(pObj->replica)), pObj, &lino, _OVER); for (int32_t i = 0; i < pObj->replica; ++i) { SJson *replicas = tjsonAddArrayToObject(item, "replicas"); SJson *replica = tjsonCreateObject(); - (void)tjsonAddItemToArray(replicas, replica); - (void)tjsonAddStringToObject(replica, "dnodeId", i642str(pObj->vnodeGid[i].dnodeId)); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(replicas, replica), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(replica, "dnodeId", i642str(pObj->vnodeGid[i].dnodeId)), pObj, &lino, + _OVER); } sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump vgroup info at line:%d since %s", lino, tstrerror(code)); } void dumpTopic(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "topics"); @@ -281,28 +324,32 @@ void dumpTopic(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "name", mndGetDbStr(pObj->name)); - (void)tjsonAddStringToObject(item, "name", mndGetDbStr(pObj->db)); - (void)tjsonAddStringToObject(item, "createTime", i642str(pObj->createTime)); - (void)tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)); - (void)tjsonAddStringToObject(item, "uid", i642str(pObj->uid)); - (void)tjsonAddStringToObject(item, "dbUid", i642str(pObj->dbUid)); - (void)tjsonAddStringToObject(item, "version", i642str(pObj->version)); - (void)tjsonAddStringToObject(item, "subType", i642str(pObj->subType)); - (void)tjsonAddStringToObject(item, "withMeta", i642str(pObj->withMeta)); - (void)tjsonAddStringToObject(item, "stbUid", i642str(pObj->stbUid)); - (void)tjsonAddStringToObject(item, "stbName", mndGetStableStr(pObj->stbName)); - (void)tjsonAddStringToObject(item, "sqlLen", i642str(pObj->sqlLen)); - (void)tjsonAddStringToObject(item, "astLen", i642str(pObj->astLen)); - (void)tjsonAddStringToObject(item, "sqlLen", i642str(pObj->sqlLen)); - (void)tjsonAddStringToObject(item, "ntbUid", i642str(pObj->ntbUid)); - (void)tjsonAddStringToObject(item, "ctbStbUid", i642str(pObj->ctbStbUid)); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "name", mndGetDbStr(pObj->name)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "name", mndGetDbStr(pObj->db)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createTime", i642str(pObj->createTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "uid", i642str(pObj->uid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "dbUid", i642str(pObj->dbUid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "version", i642str(pObj->version)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "subType", i642str(pObj->subType)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "withMeta", i642str(pObj->withMeta)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "stbUid", i642str(pObj->stbUid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "stbName", mndGetStableStr(pObj->stbName)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "sqlLen", i642str(pObj->sqlLen)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "astLen", i642str(pObj->astLen)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "sqlLen", i642str(pObj->sqlLen)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "ntbUid", i642str(pObj->ntbUid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "ctbStbUid", i642str(pObj->ctbStbUid)), pObj, &lino, _OVER); sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump topic info at line:%d since %s", lino, tstrerror(code)); } void dumpConsumer(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "consumers"); @@ -312,14 +359,18 @@ void dumpConsumer(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "consumerId", i642str(pObj->consumerId)); - (void)tjsonAddStringToObject(item, "cgroup", pObj->cgroup); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "consumerId", i642str(pObj->consumerId)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "cgroup", pObj->cgroup), pObj, &lino, _OVER); sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump consumer info at line:%d since %s", lino, tstrerror(code)); } void dumpSubscribe(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "subscribes"); @@ -329,16 +380,20 @@ void dumpSubscribe(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "key", pObj->key); - (void)tjsonAddStringToObject(item, "dbUid", i642str(pObj->dbUid)); - (void)tjsonAddStringToObject(item, "stbUid", i642str(pObj->stbUid)); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "key", pObj->key), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "dbUid", i642str(pObj->dbUid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "stbUid", i642str(pObj->stbUid)), pObj, &lino, _OVER); sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump subscribe info at line:%d since %s", lino, tstrerror(code)); } void dumpStream(SSdb *pSdb, SJson *json) { - void *pIter = NULL; + int32_t code = 0; + int32_t lino = 0; + void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "streams"); while (1) { @@ -347,31 +402,38 @@ void dumpStream(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "name", mndGetDbStr(pObj->name)); - (void)tjsonAddStringToObject(item, "createTime", i642str(pObj->createTime)); - (void)tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)); - (void)tjsonAddStringToObject(item, "version", i642str(pObj->version)); - (void)tjsonAddStringToObject(item, "totalLevel", i642str(pObj->totalLevel)); - (void)tjsonAddStringToObject(item, "smaId", i642str(pObj->smaId)); - (void)tjsonAddStringToObject(item, "uid", i642str(pObj->uid)); - (void)tjsonAddStringToObject(item, "status", i642str(pObj->status)); - (void)tjsonAddStringToObject(item, "igExpired", i642str(pObj->conf.igExpired)); - (void)tjsonAddStringToObject(item, "trigger", i642str(pObj->conf.trigger)); - (void)tjsonAddStringToObject(item, "triggerParam", i642str(pObj->conf.triggerParam)); - (void)tjsonAddStringToObject(item, "watermark", i642str(pObj->conf.watermark)); - (void)tjsonAddStringToObject(item, "sourceDbUid", i642str(pObj->sourceDbUid)); - (void)tjsonAddStringToObject(item, "targetDbUid", i642str(pObj->targetDbUid)); - (void)tjsonAddStringToObject(item, "sourceDb", mndGetDbStr(pObj->sourceDb)); - (void)tjsonAddStringToObject(item, "targetDb", mndGetDbStr(pObj->targetDb)); - (void)tjsonAddStringToObject(item, "targetSTbName", mndGetStbStr(pObj->targetSTbName)); - (void)tjsonAddStringToObject(item, "targetStbUid", i642str(pObj->targetStbUid)); - (void)tjsonAddStringToObject(item, "fixedSinkVgId", i642str(pObj->fixedSinkVgId)); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "name", mndGetDbStr(pObj->name)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createTime", i642str(pObj->createTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "version", i642str(pObj->version)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "totalLevel", i642str(pObj->totalLevel)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "smaId", i642str(pObj->smaId)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "uid", i642str(pObj->uid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "status", i642str(pObj->status)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "igExpired", i642str(pObj->conf.igExpired)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "trigger", i642str(pObj->conf.trigger)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "triggerParam", i642str(pObj->conf.triggerParam)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "watermark", i642str(pObj->conf.watermark)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "sourceDbUid", i642str(pObj->sourceDbUid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "targetDbUid", i642str(pObj->targetDbUid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "sourceDb", mndGetDbStr(pObj->sourceDb)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "targetDb", mndGetDbStr(pObj->targetDb)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "targetSTbName", mndGetStbStr(pObj->targetSTbName)), pObj, &lino, + _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "targetStbUid", i642str(pObj->targetStbUid)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "fixedSinkVgId", i642str(pObj->fixedSinkVgId)), pObj, &lino, + _OVER); sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump stream info at line:%d since %s", lino, tstrerror(code)); } void dumpAcct(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "accts"); @@ -381,13 +443,15 @@ void dumpAcct(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "acct", pObj->acct); - (void)tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)); - (void)tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)); - (void)tjsonAddStringToObject(item, "acctId", i642str(pObj->acctId)); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "acct", pObj->acct), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "acctId", i642str(pObj->acctId)), pObj, &lino, _OVER); sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump acct info at line:%d since %s", lino, tstrerror(code)); } void dumpAuth(SSdb *pSdb, SJson *json) { @@ -395,6 +459,8 @@ void dumpAuth(SSdb *pSdb, SJson *json) { } void dumpUser(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "users"); @@ -404,21 +470,27 @@ void dumpUser(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "name", pObj->user); - (void)tjsonAddStringToObject(item, "acct", pObj->acct); - (void)tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)); - (void)tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)); - (void)tjsonAddStringToObject(item, "superUser", i642str(pObj->superUser)); - (void)tjsonAddStringToObject(item, "authVersion", i642str(pObj->authVersion)); - (void)tjsonAddStringToObject(item, "passVersion", i642str(pObj->passVersion)); - (void)tjsonAddStringToObject(item, "numOfReadDbs", i642str(taosHashGetSize(pObj->readDbs))); - (void)tjsonAddStringToObject(item, "numOfWriteDbs", i642str(taosHashGetSize(pObj->writeDbs))); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "name", pObj->user), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "acct", pObj->acct), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "superUser", i642str(pObj->superUser)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "authVersion", i642str(pObj->authVersion)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "passVersion", i642str(pObj->passVersion)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "numOfReadDbs", i642str(taosHashGetSize(pObj->readDbs))), pObj, + &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "numOfWriteDbs", i642str(taosHashGetSize(pObj->writeDbs))), pObj, + &lino, _OVER); sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump user info at line:%d since %s", lino, tstrerror(code)); } void dumpDnode(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "dnodes"); @@ -428,17 +500,21 @@ void dumpDnode(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "id", i642str(pObj->id)); - (void)tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)); - (void)tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)); - (void)tjsonAddStringToObject(item, "port", i642str(pObj->port)); - (void)tjsonAddStringToObject(item, "fqdn", pObj->fqdn); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "id", i642str(pObj->id)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "port", i642str(pObj->port)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "fqdn", pObj->fqdn), pObj, &lino, _OVER); sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump dnode info at line:%d since %s", lino, tstrerror(code)); } void dumpSnode(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "snodes"); @@ -448,15 +524,19 @@ void dumpSnode(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "id", i642str(pObj->id)); - (void)tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)); - (void)tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "id", i642str(pObj->id)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)), pObj, &lino, _OVER); sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump snode info at line:%d since %s", lino, tstrerror(code)); } void dumpQnode(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "qnodes"); @@ -466,15 +546,19 @@ void dumpQnode(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "id", i642str(pObj->id)); - (void)tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)); - (void)tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "id", i642str(pObj->id)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)), pObj, &lino, _OVER); sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump qnode info at line:%d since %s", lino, tstrerror(code)); } void dumpMnode(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "mnodes"); @@ -484,15 +568,20 @@ void dumpMnode(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "id", i642str(pObj->id)); - (void)tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)); - (void)tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "id", i642str(pObj->id)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)), pObj, &lino, _OVER); sdbRelease(pSdb, pObj); } +_OVER: + if (code != 0) mError("failed to dump mnode info at line:%d since %s", lino, tstrerror(code)); } void dumpCluster(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; + void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "clusters"); @@ -502,16 +591,21 @@ void dumpCluster(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "id", i642str(pObj->id)); - (void)tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)); - (void)tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)); - (void)tjsonAddStringToObject(item, "name", pObj->name); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "id", i642str(pObj->id)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "updateTime", i642str(pObj->updateTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "name", pObj->name), pObj, &lino, _OVER); sdbRelease(pSdb, pObj); } + +_OVER: + if (code != 0) mError("failed to dump cluster info at line:%d since %s", lino, tstrerror(code)); } void dumpTrans(SSdb *pSdb, SJson *json) { + int32_t code = 0; + int32_t lino = 0; void *pIter = NULL; SJson *items = tjsonAddArrayToObject(json, "transactions"); @@ -521,53 +615,64 @@ void dumpTrans(SSdb *pSdb, SJson *json) { if (pIter == NULL) break; SJson *item = tjsonCreateObject(); - (void)tjsonAddItemToArray(items, item); - (void)tjsonAddStringToObject(item, "id", i642str(pObj->id)); - (void)tjsonAddStringToObject(item, "stage", i642str(pObj->stage)); - (void)tjsonAddStringToObject(item, "policy", i642str(pObj->policy)); - (void)tjsonAddStringToObject(item, "conflict", i642str(pObj->conflict)); - (void)tjsonAddStringToObject(item, "exec", i642str(pObj->exec)); - (void)tjsonAddStringToObject(item, "oper", i642str(pObj->oper)); - (void)tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)); - (void)tjsonAddStringToObject(item, "dbname", pObj->dbname); - (void)tjsonAddStringToObject(item, "stbname", pObj->stbname); - (void)tjsonAddStringToObject(item, "opername", pObj->opername); - (void)tjsonAddStringToObject(item, "commitLogNum", i642str(taosArrayGetSize(pObj->commitActions))); - (void)tjsonAddStringToObject(item, "redoActionNum", i642str(taosArrayGetSize(pObj->redoActions))); - (void)tjsonAddStringToObject(item, "undoActionNum", i642str(taosArrayGetSize(pObj->undoActions))); + RETRIEVE_CHECK_GOTO(tjsonAddItemToArray(items, item), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "id", i642str(pObj->id)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "stage", i642str(pObj->stage)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "policy", i642str(pObj->policy)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "conflict", i642str(pObj->conflict)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "exec", i642str(pObj->exec)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "oper", i642str(pObj->oper)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "createdTime", i642str(pObj->createdTime)), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "dbname", pObj->dbname), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "stbname", pObj->stbname), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "opername", pObj->opername), pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "commitLogNum", i642str(taosArrayGetSize(pObj->commitActions))), + pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "redoActionNum", i642str(taosArrayGetSize(pObj->redoActions))), + pObj, &lino, _OVER); + RETRIEVE_CHECK_GOTO(tjsonAddStringToObject(item, "undoActionNum", i642str(taosArrayGetSize(pObj->undoActions))), + pObj, &lino, _OVER); sdbRelease(pSdb, pObj); } + +_OVER: + if (code != 0) mError("failed to dump trans info at line:%d since %s", lino, tstrerror(code)); } void dumpHeader(SSdb *pSdb, SJson *json) { - (void)tjsonAddStringToObject(json, "sver", i642str(1)); - (void)tjsonAddStringToObject(json, "applyIndex", i642str(pSdb->applyIndex)); - (void)tjsonAddStringToObject(json, "applyTerm", i642str(pSdb->applyTerm)); - (void)tjsonAddStringToObject(json, "applyConfig", i642str(pSdb->applyConfig)); + int32_t code = 0; + int32_t lino = 0; + TAOS_CHECK_GOTO(tjsonAddStringToObject(json, "sver", i642str(1)), &lino, _OVER); + TAOS_CHECK_GOTO(tjsonAddStringToObject(json, "applyIndex", i642str(pSdb->applyIndex)), &lino, _OVER); + TAOS_CHECK_GOTO(tjsonAddStringToObject(json, "applyTerm", i642str(pSdb->applyTerm)), &lino, _OVER); + TAOS_CHECK_GOTO(tjsonAddStringToObject(json, "applyConfig", i642str(pSdb->applyConfig)), &lino, _OVER); SJson *maxIdsJson = tjsonCreateObject(); - (void)tjsonAddItemToObject(json, "maxIds", maxIdsJson); + TAOS_CHECK_GOTO(tjsonAddItemToObject(json, "maxIds", maxIdsJson), &lino, _OVER); for (int32_t i = 0; i < SDB_MAX; ++i) { if(i == 5) continue; int64_t maxId = 0; if (i < SDB_MAX) { maxId = pSdb->maxId[i]; } - (void)tjsonAddStringToObject(maxIdsJson, sdbTableName(i), i642str(maxId)); + TAOS_CHECK_GOTO(tjsonAddStringToObject(maxIdsJson, sdbTableName(i), i642str(maxId)), &lino, _OVER); } SJson *tableVersJson = tjsonCreateObject(); - (void)tjsonAddItemToObject(json, "tableVers", tableVersJson); + TAOS_CHECK_GOTO(tjsonAddItemToObject(json, "tableVers", tableVersJson), &lino, _OVER); for (int32_t i = 0; i < SDB_MAX; ++i) { int64_t tableVer = 0; if (i < SDB_MAX) { tableVer = pSdb->tableVer[i]; } - (void)tjsonAddStringToObject(tableVersJson, sdbTableName(i), i642str(tableVer)); + TAOS_CHECK_GOTO(tjsonAddStringToObject(tableVersJson, sdbTableName(i), i642str(tableVer)), &lino, _OVER); } + +_OVER: + if (code != 0) mError("failed to dump sdb info at line:%d since %s", lino, tstrerror(code)); } -void mndDumpSdb() { +int32_t mndDumpSdb() { mInfo("start to dump sdb info to sdb.json"); char path[PATH_MAX * 2] = {0}; @@ -581,12 +686,12 @@ void mndDumpSdb() { msgCb.mgmt = (SMgmtWrapper *)(&msgCb); // hack tmsgSetDefault(&msgCb); - (void)walInit(NULL); - (void)syncInit(); + TAOS_CHECK_RETURN(walInit(NULL)); + TAOS_CHECK_RETURN(syncInit()); SMnodeOpt opt = {.msgCb = msgCb}; SMnode *pMnode = mndOpen(path, &opt); - if (pMnode == NULL) return; + if (pMnode == NULL) return -1; SSdb *pSdb = pMnode->pSdb; SJson *json = tjsonCreateObject(); @@ -616,21 +721,21 @@ void mndDumpSdb() { char file[] = "sdb.json"; TdFilePtr pFile = taosOpenFile(file, TD_FILE_CREATE | TD_FILE_WRITE | TD_FILE_TRUNC | TD_FILE_WRITE_THROUGH); if (pFile == NULL) { - terrno = terrno; mError("failed to write %s since %s", file, terrstr()); - return; + return terrno; } - (void)taosWriteFile(pFile, pCont, contLen); - (void)taosWriteFile(pFile, "\n", 1); - UNUSED(taosFsyncFile(pFile)); - (void)taosCloseFile(&pFile); + TAOS_CHECK_RETURN(taosWriteFile(pFile, pCont, contLen)); + TAOS_CHECK_RETURN(taosWriteFile(pFile, "\n", 1)); + TAOS_CHECK_RETURN(taosFsyncFile(pFile)); + TAOS_CHECK_RETURN(taosCloseFile(&pFile)); tjsonDelete(json); taosMemoryFree(pCont); mInfo("dump sdb info success"); + return 0; } -void mndDeleteTrans() { +int32_t mndDeleteTrans() { mInfo("start to dump sdb info to sdb.json"); char path[PATH_MAX * 2] = {0}; @@ -644,16 +749,18 @@ void mndDeleteTrans() { msgCb.mgmt = (SMgmtWrapper *)(&msgCb); // hack tmsgSetDefault(&msgCb); - (void)walInit(NULL); - (void)syncInit(); + TAOS_CHECK_RETURN(walInit(NULL)); + TAOS_CHECK_RETURN(syncInit()); SMnodeOpt opt = {.msgCb = msgCb}; SMnode *pMnode = mndOpen(path, &opt); - if (pMnode == NULL) return; + if (pMnode == NULL) return terrno; - (void)sdbWriteFileForDump(pMnode->pSdb); + TAOS_CHECK_RETURN(sdbWriteFileForDump(pMnode->pSdb)); mInfo("dump sdb info success"); + + return 0; } #pragma GCC diagnostic pop