enh: safetyCheck
This commit is contained in:
parent
7094a8ddcf
commit
f57e3f3c85
|
@ -153,6 +153,7 @@ extern bool tsEnableCrashReport;
|
||||||
extern char *tsTelemUri;
|
extern char *tsTelemUri;
|
||||||
extern char *tsClientCrashReportUri;
|
extern char *tsClientCrashReportUri;
|
||||||
extern char *tsSvrCrashReportUri;
|
extern char *tsSvrCrashReportUri;
|
||||||
|
extern bool tsEnableSafetyCheck;
|
||||||
|
|
||||||
// query buffer management
|
// query buffer management
|
||||||
extern int32_t tsQueryBufferSize; // maximum allowed usage buffer size in MB for each data node during query processing
|
extern int32_t tsQueryBufferSize; // maximum allowed usage buffer size in MB for each data node during query processing
|
||||||
|
|
|
@ -3165,7 +3165,7 @@ int32_t blockEncode(const SSDataBlock* pBlock, char* data, size_t dataBuflen, in
|
||||||
return dataLen;
|
return dataLen;
|
||||||
|
|
||||||
_exit:
|
_exit:
|
||||||
uError("blockEncode dataLen:%d, dataBuflen:%" PRIu64, dataLen, dataBuflen);
|
uError("blockEncode dataLen:%d, dataBuflen:%zu", dataLen, dataBuflen);
|
||||||
terrno = TSDB_CODE_QRY_EXECUTOR_INTERNAL_ERROR;
|
terrno = TSDB_CODE_QRY_EXECUTOR_INTERNAL_ERROR;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,6 +139,7 @@ bool tsEnableCrashReport = true;
|
||||||
#endif
|
#endif
|
||||||
char *tsClientCrashReportUri = "/ccrashreport";
|
char *tsClientCrashReportUri = "/ccrashreport";
|
||||||
char *tsSvrCrashReportUri = "/dcrashreport";
|
char *tsSvrCrashReportUri = "/dcrashreport";
|
||||||
|
bool tsEnableSafetyCheck = true;
|
||||||
|
|
||||||
// schemaless
|
// schemaless
|
||||||
bool tsSmlDot2Underline = true;
|
bool tsSmlDot2Underline = true;
|
||||||
|
@ -607,6 +608,7 @@ static int32_t taosAddClientCfg(SConfig *pCfg) {
|
||||||
TAOS_CHECK_RETURN(
|
TAOS_CHECK_RETURN(
|
||||||
cfgAddInt64(pCfg, "randErrorDivisor", tsRandErrDivisor, 1, INT64_MAX, CFG_SCOPE_BOTH, CFG_DYN_BOTH));
|
cfgAddInt64(pCfg, "randErrorDivisor", tsRandErrDivisor, 1, INT64_MAX, CFG_SCOPE_BOTH, CFG_DYN_BOTH));
|
||||||
TAOS_CHECK_RETURN(cfgAddInt64(pCfg, "randErrorScope", tsRandErrScope, 0, INT64_MAX, CFG_SCOPE_BOTH, CFG_DYN_BOTH));
|
TAOS_CHECK_RETURN(cfgAddInt64(pCfg, "randErrorScope", tsRandErrScope, 0, INT64_MAX, CFG_SCOPE_BOTH, CFG_DYN_BOTH));
|
||||||
|
TAOS_CHECK_RETURN(cfgAddBool(pCfg, "enableSafetyCheck", tsEnableSafetyCheck, CFG_SCOPE_BOTH, CFG_DYN_BOTH));
|
||||||
|
|
||||||
tsNumOfRpcThreads = tsNumOfCores / 2;
|
tsNumOfRpcThreads = tsNumOfCores / 2;
|
||||||
tsNumOfRpcThreads = TRANGE(tsNumOfRpcThreads, 1, TSDB_MAX_RPC_THREADS);
|
tsNumOfRpcThreads = TRANGE(tsNumOfRpcThreads, 1, TSDB_MAX_RPC_THREADS);
|
||||||
|
@ -1299,6 +1301,9 @@ static int32_t taosSetClientCfg(SConfig *pCfg) {
|
||||||
|
|
||||||
TAOS_CHECK_GET_CFG_ITEM(pCfg, pItem, "tsmaDataDeleteMark");
|
TAOS_CHECK_GET_CFG_ITEM(pCfg, pItem, "tsmaDataDeleteMark");
|
||||||
tsmaDataDeleteMark = pItem->i32;
|
tsmaDataDeleteMark = pItem->i32;
|
||||||
|
|
||||||
|
TAOS_CHECK_GET_CFG_ITEM(pCfg, pItem, "enableSafetyCheck");
|
||||||
|
tsEnableSafetyCheck = pItem->bval;
|
||||||
TAOS_RETURN(TSDB_CODE_SUCCESS);
|
TAOS_RETURN(TSDB_CODE_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2039,7 +2044,8 @@ static int32_t taosCfgDynamicOptionsForServer(SConfig *pCfg, const char *name) {
|
||||||
{"s3UploadDelaySec", &tsS3UploadDelaySec},
|
{"s3UploadDelaySec", &tsS3UploadDelaySec},
|
||||||
{"supportVnodes", &tsNumOfSupportVnodes},
|
{"supportVnodes", &tsNumOfSupportVnodes},
|
||||||
{"experimental", &tsExperimental},
|
{"experimental", &tsExperimental},
|
||||||
{"maxTsmaNum", &tsMaxTsmaNum}};
|
{"maxTsmaNum", &tsMaxTsmaNum},
|
||||||
|
{"enableSafetyCheck", &tsEnableSafetyCheck}};
|
||||||
|
|
||||||
if ((code = taosCfgSetOption(debugOptions, tListLen(debugOptions), pItem, true)) != TSDB_CODE_SUCCESS) {
|
if ((code = taosCfgSetOption(debugOptions, tListLen(debugOptions), pItem, true)) != TSDB_CODE_SUCCESS) {
|
||||||
code = taosCfgSetOption(options, tListLen(options), pItem, false);
|
code = taosCfgSetOption(options, tListLen(options), pItem, false);
|
||||||
|
@ -2295,7 +2301,8 @@ static int32_t taosCfgDynamicOptionsForClient(SConfig *pCfg, const char *name) {
|
||||||
{"experimental", &tsExperimental},
|
{"experimental", &tsExperimental},
|
||||||
{"multiResultFunctionStarReturnTags", &tsMultiResultFunctionStarReturnTags},
|
{"multiResultFunctionStarReturnTags", &tsMultiResultFunctionStarReturnTags},
|
||||||
{"maxTsmaCalcDelay", &tsMaxTsmaCalcDelay},
|
{"maxTsmaCalcDelay", &tsMaxTsmaCalcDelay},
|
||||||
{"tsmaDataDeleteMark", &tsmaDataDeleteMark}};
|
{"tsmaDataDeleteMark", &tsmaDataDeleteMark},
|
||||||
|
{"enableSafetyCheck", &tsEnableSafetyCheck}};
|
||||||
|
|
||||||
if ((code = taosCfgSetOption(debugOptions, tListLen(debugOptions), pItem, true)) != TSDB_CODE_SUCCESS) {
|
if ((code = taosCfgSetOption(debugOptions, tListLen(debugOptions), pItem, true)) != TSDB_CODE_SUCCESS) {
|
||||||
code = taosCfgSetOption(options, tListLen(options), pItem, false);
|
code = taosCfgSetOption(options, tListLen(options), pItem, false);
|
||||||
|
|
|
@ -55,6 +55,9 @@ typedef struct SDataDispatchHandle {
|
||||||
} SDataDispatchHandle;
|
} SDataDispatchHandle;
|
||||||
|
|
||||||
static int32_t inputSafetyCheck(SDataDispatchHandle* pHandle, const SInputData* pInput) {
|
static int32_t inputSafetyCheck(SDataDispatchHandle* pHandle, const SInputData* pInput) {
|
||||||
|
if(!tsEnableSafetyCheck) {
|
||||||
|
return TSDB_CODE_SUCCESS;
|
||||||
|
}
|
||||||
if (pInput == NULL || pInput->pData == NULL || pInput->pData->info.rows <= 0) {
|
if (pInput == NULL || pInput->pData == NULL || pInput->pData->info.rows <= 0) {
|
||||||
qError("invalid input data");
|
qError("invalid input data");
|
||||||
return TSDB_CODE_QRY_INVALID_INPUT;
|
return TSDB_CODE_QRY_INVALID_INPUT;
|
||||||
|
|
Loading…
Reference in New Issue