refactor error code

This commit is contained in:
Yihao Deng 2024-07-17 02:51:28 +00:00
parent 21de23e14b
commit cd9b4b132e
3 changed files with 130 additions and 118 deletions

View File

@ -386,26 +386,26 @@ int mainWindows(int argc, char **argv) {
return ret; return ret;
} }
if (dmInitLog() != 0) { if ((code = dmInitLog()) != 0) {
printf("failed to start since init log error\n"); printf("failed to start since init log error\n");
taosCleanupArgs(); taosCleanupArgs();
return -1; return code;
} }
dmPrintArgs(argc, argv); dmPrintArgs(argc, argv);
if (taosInitCfg(configDir, global.envCmd, global.envFile, global.apolloUrl, global.pArgs, 0) != 0) { if ((code = taosInitCfg(configDir, global.envCmd, global.envFile, global.apolloUrl, global.pArgs, 0)) != 0) {
dError("failed to start since read config error"); dError("failed to start since read config error");
taosCloseLog(); taosCloseLog();
taosCleanupArgs(); taosCleanupArgs();
return -1; return code;
} }
if (taosConvInit() != 0) { if ((code = taosConvInit()) != 0) {
dError("failed to init conv"); dError("failed to init conv");
taosCloseLog(); taosCloseLog();
taosCleanupArgs(); taosCleanupArgs();
return -1; return code;
} }
if (global.checkS3) { if (global.checkS3) {
@ -438,24 +438,24 @@ int mainWindows(int argc, char **argv) {
osSetProcPath(argc, (char **)argv); osSetProcPath(argc, (char **)argv);
taosCleanupArgs(); taosCleanupArgs();
if (dmGetEncryptKey() != 0) { if ((code = dmGetEncryptKey()) != 0) {
dError("failed to start since failed to get encrypt key"); dError("failed to start since failed to get encrypt key");
taosCloseLog(); taosCloseLog();
taosCleanupArgs(); taosCleanupArgs();
return -1; return code;
}; };
if (dmInit() != 0) { if ((code = dmInit()) != 0) {
if (terrno == TSDB_CODE_NOT_FOUND) { if (code == TSDB_CODE_NOT_FOUND) {
dError("failed to init dnode since unsupported platform, please visit https://www.taosdata.com for support"); dError("failed to init dnode since unsupported platform, please visit https://www.taosdata.com for support");
} else { } else {
dError("failed to init dnode since %s", terrstr()); dError("failed to init dnode since %s", tstrerror(code));
} }
taosCleanupCfg(); taosCleanupCfg();
taosCloseLog(); taosCloseLog();
taosConvDestroy(); taosConvDestroy();
return -1; return code;
} }
dInfo("start to init service"); dInfo("start to init service");

View File

@ -27,8 +27,8 @@
auditCfg.port = tsMonitorPort; \ auditCfg.port = tsMonitorPort; \
auditCfg.server = tsMonitorFqdn; \ auditCfg.server = tsMonitorFqdn; \
auditCfg.comp = tsMonitorComp; \ auditCfg.comp = tsMonitorComp; \
if (auditInit(&auditCfg) != 0) { \ if ((code = auditInit(&auditCfg)) != 0) { \
return -1; \ return code; \
} \ } \
} while (0) } while (0)
@ -41,7 +41,7 @@ static int32_t dmCheckRepeatInit(SDnode *pDnode) {
if (atomic_val_compare_exchange_8(&pDnode->once, DND_ENV_INIT, DND_ENV_READY) != DND_ENV_INIT) { if (atomic_val_compare_exchange_8(&pDnode->once, DND_ENV_INIT, DND_ENV_READY) != DND_ENV_INIT) {
dError("env is already initialized"); dError("env is already initialized");
code = TSDB_CODE_REPEAT_INIT; code = TSDB_CODE_REPEAT_INIT;
return terrno = code; return code;
} }
return 0; return 0;
} }
@ -61,18 +61,15 @@ static int32_t dmInitMonitor() {
monCfg.port = tsMonitorPort; monCfg.port = tsMonitorPort;
monCfg.server = tsMonitorFqdn; monCfg.server = tsMonitorFqdn;
monCfg.comp = tsMonitorComp; monCfg.comp = tsMonitorComp;
if (monInit(&monCfg) != 0) { if ((code = monInit(&monCfg)) != 0) {
if (terrno != 0) code = terrno; dError("failed to init monitor since %s", tstrerror(code));
goto _exit;
} }
_exit:
if (code) terrno = code;
return code; return code;
} }
static int32_t dmInitAudit() { static int32_t dmInitAudit() {
SAuditCfg auditCfg = {0}; SAuditCfg auditCfg = {0};
int32_t code = 0;
DM_INIT_AUDIT(); DM_INIT_AUDIT();
@ -91,31 +88,25 @@ static bool dmDataSpaceAvailable() {
return true; return true;
} }
static bool dmCheckDiskSpace() { static int32_t dmCheckDiskSpace() {
osUpdate(); osUpdate();
// availability // availability
bool ret = true; int32_t code = 0;
if (!dmDataSpaceAvailable()) { if (!dmDataSpaceAvailable()) {
terrno = TSDB_CODE_NO_DISKSPACE; code = TSDB_CODE_NO_DISKSPACE;
ret = false; return code;
} }
if (!osLogSpaceAvailable()) { if (!osLogSpaceAvailable()) {
dError("log disk space unavailable, i.e. %s", tsLogDir); dError("log disk space unavailable, i.e. %s", tsLogDir);
terrno = TSDB_CODE_NO_DISKSPACE; code = TSDB_CODE_NO_DISKSPACE;
ret = false; return code;
} }
if (!osTempSpaceAvailable()) { if (!osTempSpaceAvailable()) {
dError("temp disk space unavailable, i.e. %s", tsTempDir); dError("temp disk space unavailable, i.e. %s", tsTempDir);
terrno = TSDB_CODE_NO_DISKSPACE; code = TSDB_CODE_NO_DISKSPACE;
ret = false; return code;
} }
return ret; return code;
}
static int32_t dmCheckDiskSpaceWrapper() {
if (!dmCheckDiskSpace()) {
return terrno;
}
return 0;
} }
int32_t tfsOpenWrapper(SDiskCfg *pCfg, int32_t ndisk, STfs **tfs) { int32_t tfsOpenWrapper(SDiskCfg *pCfg, int32_t ndisk, STfs **tfs) {
@ -180,7 +171,10 @@ int32_t dmInit() {
dInfo("start to init dnode env"); dInfo("start to init dnode env");
int32_t code = 0; int32_t code = 0;
if ((code = dmDiskInit()) != 0) return code; if ((code = dmDiskInit()) != 0) return code;
if ((code = dmCheckDataDirVersion()) != 0) return code; if (!dmCheckDataDirVersion()) {
code = TSDB_CODE_INVALID_DATA_FMT;
return code;
}
if ((code = dmCheckDiskSpace()) != 0) return code; if ((code = dmCheckDiskSpace()) != 0) return code;
if ((code = dmCheckRepeatInit(dmInstance())) != 0) return code; if ((code = dmCheckRepeatInit(dmInstance())) != 0) return code;
if ((code = dmInitSystem()) != 0) return code; if ((code = dmInitSystem()) != 0) return code;

View File

@ -142,17 +142,22 @@ int32_t taosConvInit(void) {
gConv[M2C] = taosMemoryCalloc(gConvMaxNum[M2C], sizeof(SConv)); gConv[M2C] = taosMemoryCalloc(gConvMaxNum[M2C], sizeof(SConv));
gConv[1 - M2C] = taosMemoryCalloc(gConvMaxNum[1 - M2C], sizeof(SConv)); gConv[1 - M2C] = taosMemoryCalloc(gConvMaxNum[1 - M2C], sizeof(SConv));
if (gConv[M2C] == NULL || gConv[1 - M2C] == NULL) {
taosMemoryFree(gConv[M2C]);
taosMemoryFree(gConv[1 - M2C]);
return TSDB_CODE_OUT_OF_MEMORY;
}
for (int32_t i = 0; i < gConvMaxNum[M2C]; ++i) { for (int32_t i = 0; i < gConvMaxNum[M2C]; ++i) {
gConv[M2C][i].conv = iconv_open(DEFAULT_UNICODE_ENCODEC, tsCharset); gConv[M2C][i].conv = iconv_open(DEFAULT_UNICODE_ENCODEC, tsCharset);
if ((iconv_t)-1 == gConv[M2C][i].conv || (iconv_t)0 == gConv[M2C][i].conv) { if ((iconv_t)-1 == gConv[M2C][i].conv || (iconv_t)0 == gConv[M2C][i].conv) {
return -1; return TAOS_SYSTEM_ERROR(errno);
} }
} }
for (int32_t i = 0; i < gConvMaxNum[1 - M2C]; ++i) { for (int32_t i = 0; i < gConvMaxNum[1 - M2C]; ++i) {
gConv[1 - M2C][i].conv = iconv_open(tsCharset, DEFAULT_UNICODE_ENCODEC); gConv[1 - M2C][i].conv = iconv_open(tsCharset, DEFAULT_UNICODE_ENCODEC);
if ((iconv_t)-1 == gConv[1 - M2C][i].conv || (iconv_t)0 == gConv[1 - M2C][i].conv) { if ((iconv_t)-1 == gConv[1 - M2C][i].conv || (iconv_t)0 == gConv[1 - M2C][i].conv) {
return -1; return TAOS_SYSTEM_ERROR(errno);
} }
} }
@ -566,28 +571,41 @@ int32_t taosHex2Ascii(const char *z, uint32_t n, void **data, uint32_t *size) {
// return 0; // return 0;
// } // }
static char valueOf(uint8_t symbol) static char valueOf(uint8_t symbol) {
{ switch (symbol) {
switch(symbol) case 0:
{ return '0';
case 0: return '0'; case 1:
case 1: return '1'; return '1';
case 2: return '2'; case 2:
case 3: return '3'; return '2';
case 4: return '4'; case 3:
case 5: return '5'; return '3';
case 6: return '6'; case 4:
case 7: return '7'; return '4';
case 8: return '8'; case 5:
case 9: return '9'; return '5';
case 10: return 'A'; case 6:
case 11: return 'B'; return '6';
case 12: return 'C'; case 7:
case 13: return 'D'; return '7';
case 14: return 'E'; case 8:
case 15: return 'F'; return '8';
default: case 9:
{ return '9';
case 10:
return 'A';
case 11:
return 'B';
case 12:
return 'C';
case 13:
return 'D';
case 14:
return 'E';
case 15:
return 'F';
default: {
return -1; return -1;
} }
} }