diff --git a/src/client/src/tscFunctionImpl.c b/src/client/src/tscFunctionImpl.c index b05e82b39a91195e26c3fd926e70ff75a5eb6713..a0deaa519a4ec0c6829cbfa70261b3efa28535d9 100644 --- a/src/client/src/tscFunctionImpl.c +++ b/src/client/src/tscFunctionImpl.c @@ -151,7 +151,6 @@ typedef struct SRateInfo { double sum; // for sum/avg } SRateInfo; - int32_t getResultDataInfo(int32_t dataType, int32_t dataBytes, int32_t functionId, int32_t param, int16_t *type, int16_t *bytes, int32_t *interBytes, int16_t extLength, bool isSuperTable) { if (!isValidDataType(dataType, dataBytes)) { diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index b20676a053efbed4ef9482067ab772918ee7b60a..60415a8d74837f7e444be70a8e787aed4b7faaf4 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -348,7 +348,7 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) { return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg1); } - if (pToken->n >= TSDB_TABLE_NAME_LEN) { + if (!tscValidateTableNameLength(pToken->n)) { return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg2); } @@ -1056,7 +1056,7 @@ int32_t setObjFullName(char* fullName, const char* account, SSQLToken* pDB, SSQL totalLen += 1; /* here we only check the table name length limitation */ - if (tableName->n >= TSDB_TABLE_NAME_LEN) { + if (!tscValidateTableNameLength(tableName->n)) { return TSDB_CODE_TSC_INVALID_SQL; } } else { // pDB == NULL, the db prefix name is specified in tableName @@ -1402,9 +1402,7 @@ int32_t addProjectionExprAndResultField(SQueryInfo* pQueryInfo, tSQLExprItem* pI } if (index.columnIndex == TSDB_TBNAME_COLUMN_INDEX) { - SSchema colSchema = {.type = TSDB_DATA_TYPE_BINARY, .bytes = (TSDB_TABLE_NAME_LEN - 1) + VARSTR_HEADER_SIZE}; - strcpy(colSchema.name, TSQL_TBNAME_L); - + SSchema colSchema = tGetTableNameColumnSchema(); tscAddSpecialColumnForSelect(pQueryInfo, startPos, TSDB_FUNC_TAGPRJ, &index, &colSchema, true); } else { STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, index.tableIndex); @@ -1914,9 +1912,7 @@ int32_t addExprAndResultField(SQueryInfo* pQueryInfo, int32_t colIndex, tSQLExpr SSchema s = {0}; if (index.columnIndex == TSDB_TBNAME_COLUMN_INDEX) { - s.bytes = TSDB_TABLE_NAME_LEN + VARSTR_HEADER_SIZE; - s.type = TSDB_DATA_TYPE_BINARY; - s.colId = TSDB_TBNAME_COLUMN_INDEX; + s = tGetTableNameColumnSchema(); } else { s = pTagSchema[index.columnIndex]; } @@ -2230,7 +2226,7 @@ int32_t setShowInfo(SSqlObj* pSql, struct SSqlInfo* pInfo) { return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg6); } - if (pCmd->payloadLen >= TSDB_TABLE_NAME_LEN) { + if (!tscValidateTableNameLength(pCmd->payloadLen)) { return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg2); } } @@ -2861,7 +2857,7 @@ static int32_t tablenameListToString(tSQLExpr* pExpr, SStringBuilder* sb) { taosStringBuilderAppendString(sb, TBNAME_LIST_SEP); } - if (pSub->val.nLen <= 0 || pSub->val.nLen > TSDB_TABLE_NAME_LEN) { + if (pSub->val.nLen <= 0 || !tscValidateTableNameLength(pSub->val.nLen)) { return TSDB_CODE_TSC_INVALID_SQL; } } @@ -5233,9 +5229,10 @@ static int32_t doAddGroupbyColumnsOnDemand(SQueryInfo* pQueryInfo) { int16_t colIndex = pColIndex->colIndex; if (colIndex == TSDB_TBNAME_COLUMN_INDEX) { - type = TSDB_DATA_TYPE_BINARY; - bytes = (TSDB_TABLE_NAME_LEN - 1) + VARSTR_HEADER_SIZE; // todo extract method - name = TSQL_TBNAME_L; + SSchema s = tGetTableNameColumnSchema(); + type = s.type; + bytes = s.bytes; + name = s.name; } else { if (TSDB_COL_IS_TAG(pColIndex->flag)) { SSchema* tagSchema = tscGetTableTagSchema(pTableMetaInfo->pTableMeta); diff --git a/src/client/src/tscSchemaUtil.c b/src/client/src/tscSchemaUtil.c index 88417addf635fd3cf0824cf6774112c1bfd5a05f..439aa7c1dedc1f9b301d3aeb08ccb7d68ac9ab00 100644 --- a/src/client/src/tscSchemaUtil.c +++ b/src/client/src/tscSchemaUtil.c @@ -50,14 +50,6 @@ int32_t tscGetNumOfColumns(const STableMeta* pTableMeta) { SSchema *tscGetTableSchema(const STableMeta *pTableMeta) { assert(pTableMeta != NULL); - -// if (pTableMeta->tableType == TSDB_CHILD_TABLE) { -// STableMeta* pSTableMeta = pTableMeta->pSTable; -// assert (pSTableMeta != NULL); -// -// return pSTableMeta->schema; -// } - return (SSchema*) pTableMeta->schema; } diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 3fb22f7f8da900fb45c0e875b66072a2ac7f6fc0..2a102a2eccb7980ad497802b93b6da5f30c38c70 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -1289,7 +1289,10 @@ int tscBuildUpdateTagMsg(SSqlObj* pSql, SSqlInfo *pInfo) { SUpdateTableTagValMsg* pUpdateMsg = (SUpdateTableTagValMsg*) (pCmd->payload + tsRpcHeadSize); pCmd->payloadLen = htonl(pUpdateMsg->head.contLen); - + SQueryInfo * pQueryInfo = tscGetQueryInfoDetail(pCmd, 0); + STableMetaInfo *pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); + tscSetDnodeIpList(pSql, &pTableMetaInfo->pTableMeta->vgroupInfo); + return TSDB_CODE_SUCCESS; } @@ -2220,9 +2223,7 @@ int tscProcessAlterTableMsgRsp(SSqlObj *pSql) { if (pTableMetaInfo->pTableMeta) { bool isSuperTable = UTIL_TABLE_IS_SUPER_TABLE(pTableMetaInfo); - taosCacheRelease(tscCacheHandle, (void **)&(pTableMetaInfo->pTableMeta), true); -// taosCacheRelease(tscCacheHandle, (void **)&(pTableMetaInfo->pMetricMeta), true); if (isSuperTable) { // if it is a super table, reset whole query cache tscTrace("%p reset query cache since table:%s is stable", pSql, pTableMetaInfo->name); diff --git a/src/client/src/tscSql.c b/src/client/src/tscSql.c index a5cfa405160e77a565fee643752696667db5f945..5f8b2f0dc13c4414bf29008d9bf7ca819f4392dc 100644 --- a/src/client/src/tscSql.c +++ b/src/client/src/tscSql.c @@ -475,6 +475,33 @@ int taos_select_db(TAOS *taos, const char *db) { return code; } +// send free message to vnode to free qhandle and corresponding resources in vnode +static void tscFreeQhandleInVnode(SSqlObj* pSql) { + SSqlCmd* pCmd = &pSql->cmd; + SSqlRes* pRes = &pSql->res; + + SQueryInfo* pQueryInfo = tscGetQueryInfoDetail(pCmd, 0); + STableMetaInfo *pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); + + if (pRes->code == TSDB_CODE_SUCCESS && pRes->completed == false && !tscIsTwoStageSTableQuery(pQueryInfo, 0) && + (pCmd->command == TSDB_SQL_SELECT || + pCmd->command == TSDB_SQL_SHOW || + pCmd->command == TSDB_SQL_RETRIEVE || + pCmd->command == TSDB_SQL_FETCH) && + (pCmd->command == TSDB_SQL_SELECT && pSql->pStream == NULL && pTableMetaInfo->pTableMeta != NULL)) { + + pCmd->command = (pCmd->command > TSDB_SQL_MGMT) ? TSDB_SQL_RETRIEVE : TSDB_SQL_FETCH; + tscTrace("%p start to send msg to free qhandle in dnode, command:%s", pSql, sqlCmd[pCmd->command]); + pSql->freed = 1; + tscProcessSql(pSql); + + // in case of sync model query, waits for response and then goes on + if (pSql->fp == waitForQueryRsp || pSql->fp == waitForRetrieveRsp) { + sem_wait(&pSql->rspSem); + } + } +} + void taos_free_result(TAOS_RES *res) { SSqlObj *pSql = (SSqlObj *)res; tscTrace("%p start to free result", res); @@ -484,10 +511,8 @@ void taos_free_result(TAOS_RES *res) { return; } - SSqlRes *pRes = &pSql->res; - SSqlCmd *pCmd = &pSql->cmd; - // The semaphore can not be changed while freeing async sub query objects. + SSqlRes *pRes = &pSql->res; if (pRes == NULL || pRes->qhandle == 0) { tscTrace("%p SqlObj is freed by app, qhandle is null", pSql); tscFreeSqlObj(pSql); @@ -502,30 +527,9 @@ void taos_free_result(TAOS_RES *res) { } pQueryInfo->type = TSDB_QUERY_TYPE_FREE_RESOURCE; - STableMetaInfo *pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); - - /* - * If the query process is cancelled by user in stable query, tscProcessSql should not be called - * for each subquery. Because the failure of execution tsProcessSql may trigger the callback function - * be executed, and the retry efforts may result in double free the resources, e.g.,SRetrieveSupport - */ - if (pRes->code == TSDB_CODE_SUCCESS && pRes->completed == false && - (pCmd->command == TSDB_SQL_SELECT || pCmd->command == TSDB_SQL_SHOW || - pCmd->command == TSDB_SQL_RETRIEVE || pCmd->command == TSDB_SQL_FETCH) && - (pCmd->command == TSDB_SQL_SELECT && pSql->pStream == NULL && pTableMetaInfo->pTableMeta != NULL)) { - pCmd->command = (pCmd->command > TSDB_SQL_MGMT) ? TSDB_SQL_RETRIEVE : TSDB_SQL_FETCH; - - tscTrace("%p start to send msg to free qhandle in dnode, command:%s", pSql, sqlCmd[pCmd->command]); - pSql->freed = 1; - tscProcessSql(pSql); - - // in case of sync model query, waits for response and then goes on - if (pSql->fp == waitForQueryRsp || pSql->fp == waitForRetrieveRsp) { - sem_wait(&pSql->rspSem); - } - } - + tscFreeQhandleInVnode(pSql); tscFreeSqlObj(pSql); + tscTrace("%p sql result is freed by app", pSql); } diff --git a/src/client/src/tscSubquery.c b/src/client/src/tscSubquery.c index ddc41e52e52705d2838bef337996f50708bc23c0..3bc931a855876fff6e7630f6324d0e1a7261bbb8 100644 --- a/src/client/src/tscSubquery.c +++ b/src/client/src/tscSubquery.c @@ -1662,12 +1662,13 @@ void tscRetrieveDataRes(void *param, TAOS_RES *tres, int code) { */ if (code != TSDB_CODE_SUCCESS) { if (trsupport->numOfRetry++ >= MAX_NUM_OF_SUBQUERY_RETRY) { - tscTrace("%p sub:%p reach the max retry times, set global code:%d", pParentSql, pSql, code); + tscTrace("%p sub:%p reach the max retry times, set global code:%s", pParentSql, pSql, tstrerror(code)); atomic_val_compare_exchange_32(&pState->code, 0, code); } else { // does not reach the maximum retry time, go on tscTrace("%p sub:%p failed code:%s, retry:%d", pParentSql, pSql, tstrerror(code), trsupport->numOfRetry); SSqlObj *pNew = tscCreateSqlObjForSubquery(pParentSql, trsupport, pSql); + if (pNew == NULL) { tscError("%p sub:%p failed to create new subquery due to out of memory, abort retry, vgId:%d, orderOfSub:%d", trsupport->pParentSqlObj, pSql, pVgroup->vgId, trsupport->subqueryIndex); @@ -1677,7 +1678,8 @@ void tscRetrieveDataRes(void *param, TAOS_RES *tres, int code) { } else { SQueryInfo *pNewQueryInfo = tscGetQueryInfoDetail(&pNew->cmd, 0); assert(pNewQueryInfo->pTableMetaInfo[0]->pTableMeta != NULL); - + + taos_free_result(pSql); tscProcessSql(pNew); return; } diff --git a/src/common/inc/tglobal.h b/src/common/inc/tglobal.h index 39144c3083803b99997d19cf63b389f5f1c21aa5..53d821b3d827f13de280092470ad70d1d2513897 100644 --- a/src/common/inc/tglobal.h +++ b/src/common/inc/tglobal.h @@ -53,6 +53,7 @@ extern int64_t tsMsPerDay[3]; extern char tsFirst[]; extern char tsSecond[]; +extern char tsLocalFqdn[]; extern char tsLocalEp[]; extern uint16_t tsServerPort; extern uint16_t tsDnodeShellPort; diff --git a/src/common/inc/tname.h b/src/common/inc/tname.h index 810d7f492c8fcd96aa7a4b2032f05142e8494e86..d2008c9ff8181b54db83fdd92f777ba74489ce73 100644 --- a/src/common/inc/tname.h +++ b/src/common/inc/tname.h @@ -23,5 +23,8 @@ void extractTableName(const char *tableId, char *name); char* extractDBName(const char *tableId, char *name); +SSchema tGetTableNameColumnSchema(); + +bool tscValidateTableNameLength(size_t len); #endif // TDENGINE_NAME_H diff --git a/src/common/src/tglobal.c b/src/common/src/tglobal.c index 0cd0e48fbf50dc290e5ce3209e551ff10930274f..f44af78e9a547af84ed4cf4aa78c1b7c9ce51700 100644 --- a/src/common/src/tglobal.c +++ b/src/common/src/tglobal.c @@ -65,6 +65,7 @@ int64_t tsMsPerDay[] = {86400000L, 86400000000L, 86400000000000L}; char tsFirst[TSDB_EP_LEN] = {0}; char tsSecond[TSDB_EP_LEN] = {0}; char tsArbitrator[TSDB_EP_LEN] = {0}; +char tsLocalFqdn[TSDB_FQDN_LEN] = {0}; char tsLocalEp[TSDB_EP_LEN] = {0}; // Local End Point, hostname:port uint16_t tsServerPort = 6030; uint16_t tsDnodeShellPort = 6030; // udp[6035-6039] tcp[6035] @@ -305,6 +306,16 @@ static void doInitGlobalConfig() { cfg.unitType = TAOS_CFG_UTYPE_NONE; taosInitConfigOption(cfg); + cfg.option = "fqdn"; + cfg.ptr = tsLocalFqdn; + cfg.valType = TAOS_CFG_VTYPE_STRING; + cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT; + cfg.minValue = 0; + cfg.maxValue = 0; + cfg.ptrLength = TSDB_FQDN_LEN; + cfg.unitType = TAOS_CFG_UTYPE_NONE; + taosInitConfigOption(cfg); + // port cfg.option = "serverPort"; cfg.ptr = &tsServerPort; @@ -1251,9 +1262,13 @@ bool taosCheckGlobalCfg() { taosSetAllDebugFlag(); } - taosGetFqdn(tsLocalEp); - sprintf(tsLocalEp + strlen(tsLocalEp), ":%d", tsServerPort); - uPrint("localEp is %s", tsLocalEp); + if (tsLocalFqdn[0] == 0) + taosGetFqdn(tsLocalEp); + else + strcpy(tsLocalEp, tsLocalFqdn); + + snprintf(tsLocalEp + strlen(tsLocalEp), sizeof(tsLocalEp), ":%d", tsServerPort); + uPrint("localEp is: %s", tsLocalEp); if (tsFirst[0] == 0) { strcpy(tsFirst, tsLocalEp); diff --git a/src/common/src/tname.c b/src/common/src/tname.c index d2f5dfc4f75a96e725dc719a4d348472e36d3564..2514ed26e55e54eddf54d83933beecdfbf4e06fa 100644 --- a/src/common/src/tname.c +++ b/src/common/src/tname.c @@ -37,3 +37,16 @@ char* extractDBName(const char* tableId, char* name) { return strncpy(name, &tableId[offset1 + 1], len); } + +SSchema tGetTableNameColumnSchema() { + SSchema s = {0}; + s.bytes = TSDB_TABLE_NAME_LEN - 1 + VARSTR_HEADER_SIZE; + s.type = TSDB_DATA_TYPE_BINARY; + s.colId = TSDB_TBNAME_COLUMN_INDEX; + strncpy(s.name, TSQL_TBNAME_L, TSDB_COL_NAME_LEN); + return s; +} + +bool tscValidateTableNameLength(size_t len) { + return len < TSDB_TABLE_NAME_LEN; +} \ No newline at end of file diff --git a/src/dnode/src/dnodeMgmt.c b/src/dnode/src/dnodeMgmt.c index 789a98f78edb34b822cd8780adb2ef8d4d30aa61..d35e82fa47232b2d323d80721a9f08f1115d3ee1 100644 --- a/src/dnode/src/dnodeMgmt.c +++ b/src/dnode/src/dnodeMgmt.c @@ -572,6 +572,7 @@ static void dnodeSaveMnodeInfos() { len += snprintf(content + len, maxLen - len, "}\n"); fwrite(content, 1, len, fp); + fflush(fp); fclose(fp); free(content); @@ -694,6 +695,7 @@ static void dnodeSaveDnodeCfg() { len += snprintf(content + len, maxLen - len, "}\n"); fwrite(content, 1, len, fp); + fflush(fp); fclose(fp); free(content); diff --git a/src/inc/taosdef.h b/src/inc/taosdef.h index e85b7f89b3faa86bed3ee047efb3596f5259bb81..7490de90d014927c27b2c9b19fbc33f5fd570d05 100644 --- a/src/inc/taosdef.h +++ b/src/inc/taosdef.h @@ -200,7 +200,7 @@ void tsDataSwap(void *pLeft, void *pRight, int32_t type, int32_t size); #define TSDB_MIN_COLUMNS 2 //PRIMARY COLUMN(timestamp) + other columns #define TSDB_NODE_NAME_LEN 64 -#define TSDB_TABLE_NAME_LEN 193 +#define TSDB_TABLE_NAME_LEN 193 // it is a null-terminated string #define TSDB_DB_NAME_LEN 33 #define TSDB_TABLE_ID_LEN (TSDB_ACCT_LEN + TSDB_DB_NAME_LEN + TSDB_TABLE_NAME_LEN) #define TSDB_COL_NAME_LEN 65 diff --git a/src/inc/taosmsg.h b/src/inc/taosmsg.h index b81bc72652d5e886eb18833c6ba4a3cbc35ef750..1198097895c4dc2939b0405decb56439d9822527 100644 --- a/src/inc/taosmsg.h +++ b/src/inc/taosmsg.h @@ -501,8 +501,7 @@ typedef struct { } SVnodeLoad; typedef struct { - char acct[TSDB_USER_LEN]; - char db[TSDB_DB_NAME_LEN]; + char db[TSDB_ACCT_LEN + TSDB_DB_NAME_LEN]; int32_t cacheBlockSize; //MB int32_t totalBlocks; int32_t maxTables; diff --git a/src/mnode/inc/mnodeDef.h b/src/mnode/inc/mnodeDef.h index 51785ea61e81bbcd7639865c2fce7358dd216073..2baf28f88f9b51cae7e1159a2bd9446217adbdcd 100644 --- a/src/mnode/inc/mnodeDef.h +++ b/src/mnode/inc/mnodeDef.h @@ -154,7 +154,7 @@ typedef struct { } SDbCfg; typedef struct SDbObj { - char name[TSDB_DB_NAME_LEN]; + char name[TSDB_ACCT_LEN + TSDB_DB_NAME_LEN]; char acct[TSDB_USER_LEN]; int64_t createdTime; int32_t cfgVersion; diff --git a/src/mnode/src/mnodeTable.c b/src/mnode/src/mnodeTable.c index be8e1910bcc1e970fc677bff616f28bd478fa95f..89ac4b6cc4e6aa0da55994737e3a4be3d3ec6206 100644 --- a/src/mnode/src/mnodeTable.c +++ b/src/mnode/src/mnodeTable.c @@ -1078,8 +1078,9 @@ static int32_t mnodeGetShowSuperTableMeta(STableMetaMsg *pMeta, SShowObj *pShow, int32_t cols = 0; SSchema *pSchema = pMeta->schema; - pShow->bytes[cols] = (TSDB_TABLE_NAME_LEN - 1) + VARSTR_HEADER_SIZE; - pSchema[cols].type = TSDB_DATA_TYPE_BINARY; + SSchema tbnameSchema = tGetTableNameColumnSchema(); + pShow->bytes[cols] = tbnameSchema.bytes; + pSchema[cols].type = tbnameSchema.type; strcpy(pSchema[cols].name, "name"); pSchema[cols].bytes = htons(pShow->bytes[cols]); cols++; @@ -2079,8 +2080,9 @@ static int32_t mnodeGetShowTableMeta(STableMetaMsg *pMeta, SShowObj *pShow, void int32_t cols = 0; SSchema *pSchema = pMeta->schema; - pShow->bytes[cols] = (TSDB_TABLE_NAME_LEN - 1) + VARSTR_HEADER_SIZE; - pSchema[cols].type = TSDB_DATA_TYPE_BINARY; + SSchema s = tGetTableNameColumnSchema(); + pShow->bytes[cols] = s.bytes; + pSchema[cols].type = s.type; strcpy(pSchema[cols].name, "table_name"); pSchema[cols].bytes = htons(pShow->bytes[cols]); cols++; @@ -2097,8 +2099,9 @@ static int32_t mnodeGetShowTableMeta(STableMetaMsg *pMeta, SShowObj *pShow, void pSchema[cols].bytes = htons(pShow->bytes[cols]); cols++; - pShow->bytes[cols] = (TSDB_TABLE_NAME_LEN - 1) + VARSTR_HEADER_SIZE; - pSchema[cols].type = TSDB_DATA_TYPE_BINARY; + SSchema tbCol = tGetTableNameColumnSchema(); + pShow->bytes[cols] = tbCol.bytes; + pSchema[cols].type = tbCol.type; strcpy(pSchema[cols].name, "stable_name"); pSchema[cols].bytes = htons(pShow->bytes[cols]); cols++; @@ -2268,8 +2271,9 @@ static int32_t mnodeGetStreamTableMeta(STableMetaMsg *pMeta, SShowObj *pShow, vo int32_t cols = 0; SSchema *pSchema = pMeta->schema; - pShow->bytes[cols] = (TSDB_TABLE_NAME_LEN - 1) + VARSTR_HEADER_SIZE; - pSchema[cols].type = TSDB_DATA_TYPE_BINARY; + SSchema tbnameColSchema = tGetTableNameColumnSchema(); + pShow->bytes[cols] = tbnameColSchema.bytes; + pSchema[cols].type = tbnameColSchema.type; strcpy(pSchema[cols].name, "table_name"); pSchema[cols].bytes = htons(pShow->bytes[cols]); cols++; diff --git a/src/os/linux/src/linuxSysPara.c b/src/os/linux/src/linuxSysPara.c index 8ae2630a1547b3716cc89433ec4f539c3a89e12d..0e76ab00469540f7c31a2508ec51ff828d9e8d4c 100644 --- a/src/os/linux/src/linuxSysPara.c +++ b/src/os/linux/src/linuxSysPara.c @@ -332,33 +332,42 @@ bool taosGetDisk() { } static bool taosGetCardInfo(int64_t *bytes) { + *bytes = 0; FILE *fp = fopen(tsSysNetFile, "r"); if (fp == NULL) { uError("open file:%s failed", tsSysNetFile); return false; } - int64_t rbytes, rpackts, tbytes, tpackets; - int64_t nouse1, nouse2, nouse3, nouse4, nouse5, nouse6; - char nouse0[200] = {0}; - size_t len; - char * line = NULL; - *bytes = 0; + size_t len = 2048; + char * line = calloc(1, len); while (!feof(fp)) { - tfree(line); - len = 0; + memset(line, 0, len); + + int64_t rbytes = 0; + int64_t rpackts = 0; + int64_t tbytes = 0; + int64_t tpackets = 0; + int64_t nouse1 = 0; + int64_t nouse2 = 0; + int64_t nouse3 = 0; + int64_t nouse4 = 0; + int64_t nouse5 = 0; + int64_t nouse6 = 0; + char nouse0[200] = {0}; + getline(&line, &len, fp); - if (line == NULL) { - break; - } + line[len - 1] = 0; + if (strstr(line, "lo:") != NULL) { continue; } sscanf(line, - "%s %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64, + "%s %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 + " %" PRId64, nouse0, &rbytes, &rpackts, &nouse1, &nouse2, &nouse3, &nouse4, &nouse5, &nouse6, &tbytes, &tpackets); *bytes += (rbytes + tbytes); } diff --git a/src/query/src/qExecutor.c b/src/query/src/qExecutor.c index 85d4acdfed399839b0a2efcb915e67a5ad19746d..57ab593b17aaaca8619c0b740799ce3dc26e33e7 100644 --- a/src/query/src/qExecutor.c +++ b/src/query/src/qExecutor.c @@ -1368,8 +1368,10 @@ static int32_t setupQueryRuntimeEnv(SQueryRuntimeEnv *pRuntimeEnv, int16_t order int32_t index = pSqlFuncMsg->colInfo.colIndex; if (TSDB_COL_IS_TAG(pIndex->flag)) { if (pIndex->colId == TSDB_TBNAME_COLUMN_INDEX) { // todo refactor - pCtx->inputBytes = (TSDB_TABLE_NAME_LEN - 1) + VARSTR_HEADER_SIZE; - pCtx->inputType = TSDB_DATA_TYPE_BINARY; + SSchema s = tGetTableNameColumnSchema(); + + pCtx->inputBytes = s.bytes; + pCtx->inputType = s.type; } else { pCtx->inputBytes = pQuery->tagColList[index].bytes; pCtx->inputType = pQuery->tagColList[index].type; @@ -5143,8 +5145,9 @@ static int32_t createQFunctionExprFromMsg(SQueryTableMsg *pQueryMsg, SExprInfo * type = TSDB_DATA_TYPE_DOUBLE; bytes = tDataTypeDesc[type].nSize; } else if (pExprs[i].base.colInfo.colId == TSDB_TBNAME_COLUMN_INDEX && pExprs[i].base.functionId == TSDB_FUNC_TAGPRJ) { // parse the normal column - type = TSDB_DATA_TYPE_BINARY; - bytes = (TSDB_TABLE_NAME_LEN - 1) + VARSTR_HEADER_SIZE; + SSchema s = tGetTableNameColumnSchema(); + type = s.type; + bytes = s.bytes; } else{ int32_t j = getColumnIndexInSource(pQueryMsg, &pExprs[i].base, pTagCols); assert(j < pQueryMsg->numOfCols || j < pQueryMsg->numOfTags || j == TSDB_TBNAME_COLUMN_INDEX); @@ -5154,10 +5157,11 @@ static int32_t createQFunctionExprFromMsg(SQueryTableMsg *pQueryMsg, SExprInfo * type = pCol->type; bytes = pCol->bytes; } else { - type = TSDB_DATA_TYPE_BINARY; - bytes = TSDB_TABLE_NAME_LEN + VARSTR_HEADER_SIZE; - } + SSchema s = tGetTableNameColumnSchema(); + type = s.type; + bytes = s.bytes; + } } int32_t param = pExprs[i].base.arg[0].argValue.i64; @@ -6064,6 +6068,7 @@ static void buildTagQueryResult(SQInfo* pQInfo) { qTrace("QInfo:%p create count(tbname) query, res:%d rows:1", pQInfo, count); } else { // return only the tags|table name etc. count = 0; + SSchema tbnameSchema = tGetTableNameColumnSchema(); while(pQInfo->tableIndex < num && count < pQuery->rec.capacity) { int32_t i = pQInfo->tableIndex++; @@ -6073,7 +6078,7 @@ static void buildTagQueryResult(SQInfo* pQInfo) { for(int32_t j = 0; j < pQuery->numOfOutput; ++j) { if (pExprInfo[j].base.colInfo.colId == TSDB_TBNAME_COLUMN_INDEX) { char* data = tsdbGetTableName(pQInfo->tsdb, &item->id); - char* dst = pQuery->sdata[j]->data + count * ((TSDB_TABLE_NAME_LEN - 1) + VARSTR_HEADER_SIZE); + char* dst = pQuery->sdata[j]->data + count * tbnameSchema.bytes; memcpy(dst, data, varDataTLen(data)); } else {// todo refactor int16_t type = pExprInfo[j].type; diff --git a/src/rpc/src/rpcMain.c b/src/rpc/src/rpcMain.c index 3bcea21a1ba29a5a601a70708ff6b903efda911c..70424c3fd442abd49c492aceb0e29f988959bf53 100644 --- a/src/rpc/src/rpcMain.c +++ b/src/rpc/src/rpcMain.c @@ -425,6 +425,8 @@ void rpcSendResponse(const SRpcMsg *pRsp) { taosTmrReset(rpcProcessIdleTimer, pRpc->idleTime, pConn, pRpc->tmrCtrl, &pConn->pIdleTimer); rpcSendMsgToPeer(pConn, msg, msgLen); pConn->secured = 1; // connection shall be secured + + if (pConn->pReqMsg) rpcFreeCont(pConn->pReqMsg); pConn->pReqMsg = NULL; pConn->reqMsgLen = 0; diff --git a/src/tsdb/src/tsdbRead.c b/src/tsdb/src/tsdbRead.c index 70ee6d1c3eb657070ef8932641a9c37931731654..0e1b9894a8b136d512dd8b300e3606855b72f60d 100644 --- a/src/tsdb/src/tsdbRead.c +++ b/src/tsdb/src/tsdbRead.c @@ -1942,7 +1942,7 @@ int32_t tableGroupComparFn(const void *p1, const void *p2, const void *param) { f1 = (char*) pTable1->name; f2 = (char*) pTable2->name; type = TSDB_DATA_TYPE_BINARY; - bytes = (TSDB_TABLE_NAME_LEN - 1) + VARSTR_HEADER_SIZE; + bytes = tGetTableNameColumnSchema().bytes; } else { STColumn* pCol = schemaColAt(pTableGroupSupp->pTagSchema, colIndex); bytes = pCol->bytes; diff --git a/src/vnode/src/vnodeMain.c b/src/vnode/src/vnodeMain.c index cbebbfd4e26c80dd230024893b918d0931f5fce0..d506848e551a0c9cf1dab2758c82d6b7e1c7d03b 100644 --- a/src/vnode/src/vnodeMain.c +++ b/src/vnode/src/vnodeMain.c @@ -553,6 +553,7 @@ static int32_t vnodeSaveCfg(SMDCreateVnodeMsg *pVnodeCfg) { len += snprintf(content + len, maxLen - len, "}\n"); fwrite(content, 1, len, fp); + fflush(fp); fclose(fp); free(content); diff --git a/tests/pytest/random-test/random-test-multi-threading-3.py b/tests/pytest/random-test/random-test-multi-threading-3.py index 91f35ea7a5b812c28711a75b91ce8faa71223d68..47c4228a8fb2df18ee8e8ce8b407d3d5b3b83ac8 100644 --- a/tests/pytest/random-test/random-test-multi-threading-3.py +++ b/tests/pytest/random-test/random-test-multi-threading-3.py @@ -127,6 +127,8 @@ class Test (Thread): def drop_stable(self): tdLog.info("drop_stable") global last_stb + global last_tb + global written if (last_stb == ""): tdLog.info("no super table") @@ -135,6 +137,8 @@ class Test (Thread): tdLog.info("will drop last super table") tdSql.execute('drop table %s' % last_stb) last_stb = "" + last_tb = "" + written = 0 def restart_database(self): tdLog.info("restart_database") diff --git a/tests/pytest/random-test/random-test-multi-threading.py b/tests/pytest/random-test/random-test-multi-threading.py index 997001157e804021d465ad4a6c580ad33e5631c5..65b6dcd948ca6a789d66f8c20ca3c2397bff0974 100644 --- a/tests/pytest/random-test/random-test-multi-threading.py +++ b/tests/pytest/random-test/random-test-multi-threading.py @@ -105,12 +105,18 @@ class Test (threading.Thread): return else: tdLog.info("will create stable %s" % current_stb) + tdLog.info( + 'create table %s(ts timestamp, c1 int, c2 nchar(10)) tags (t1 int, t2 nchar(10))' % + current_stb) tdSql.execute( 'create table %s(ts timestamp, c1 int, c2 nchar(10)) tags (t1 int, t2 nchar(10))' % current_stb) last_stb = current_stb current_tb = "tb%d" % int(round(time.time() * 1000)) + tdLog.info( + "create table %s using %s tags (1, '表1')" % + (current_tb, last_stb)) tdSql.execute( "create table %s using %s tags (1, '表1')" % (current_tb, last_stb)) @@ -128,6 +134,8 @@ class Test (threading.Thread): def drop_stable(self): tdLog.info("drop_stable") global last_stb + global last_tb + global written if (last_stb == ""): tdLog.info("no super table") @@ -136,6 +144,8 @@ class Test (threading.Thread): tdLog.info("will drop last super table") tdSql.execute('drop table %s' % last_stb) last_stb = "" + last_tb = "" + written = 0 def restart_database(self): tdLog.info("restart_database") diff --git a/tests/pytest/random-test/random-test.py b/tests/pytest/random-test/random-test.py index 9cfc24f4045b6f57448dce7893d30fe68944afc6..5eb356960ab5207824c4eb4d1f75323b530ca5dd 100644 --- a/tests/pytest/random-test/random-test.py +++ b/tests/pytest/random-test/random-test.py @@ -111,6 +111,8 @@ class Test: tdLog.info("will drop last super table") tdSql.execute('drop table %s' % self.last_stb) self.last_stb = "" + self.last_tb = "" + self.written = 0 def query_data_from_stable(self): tdLog.info("query_data_from_stable") diff --git a/tests/script/unique/arbitrator/dn3_mn1_replica_change_dropDnod.sim b/tests/script/unique/arbitrator/dn3_mn1_replica_change_dropDnod.sim index a7aaf018f13ef9dadf26350598af3722726341e6..4f29989aff04b5684f7a66ca87f724e1599d9e32 100644 --- a/tests/script/unique/arbitrator/dn3_mn1_replica_change_dropDnod.sim +++ b/tests/script/unique/arbitrator/dn3_mn1_replica_change_dropDnod.sim @@ -55,7 +55,7 @@ sql create dnode $hostname3 sql create dnode $hostname4 sleep 3000 -$totalTableNum = 10000 +$totalTableNum = 1000 $sleepTimer = 10000 $db = db @@ -133,5 +133,3 @@ if $data00 != $totalRows then return -1 endi -print drop dnode $hostname3, return error: not drop dnode for repica is 2, need 2 dnodes. -sql_error drop dnode $hostname3 diff --git a/tests/script/unique/arbitrator/dn3_mn1_vnode_corruptFile_offline.sim b/tests/script/unique/arbitrator/dn3_mn1_vnode_corruptFile_offline.sim index 9f6486cfcb80531c902892b9e853ed9b172d42cb..be4c321c364028faf752b190cd39275d69820176 100644 --- a/tests/script/unique/arbitrator/dn3_mn1_vnode_corruptFile_offline.sim +++ b/tests/script/unique/arbitrator/dn3_mn1_vnode_corruptFile_offline.sim @@ -59,7 +59,7 @@ $totalTableNum = 100 $sleepTimer = 3000 $db = db -sql create database $db replica 3 maxTables $totalTableNum +sql create database $db replica 2 maxTables $totalTableNum sql use $db # create table , insert data @@ -168,7 +168,7 @@ $dnode4Status = $data4_4 if $dnode3Status != ready then sleep 2000 - goto wait_dnode4_reready + goto wait_dnode3_reready endi sql select count(*) from $stb @@ -213,8 +213,8 @@ print show vgroups: print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1 print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2 print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3 -$dnode2Vtatus = $data4_2 -$dnode3Vtatus = $data7_2 +$dnode2Vtatus = $data7_2 +$dnode3Vtatus = $data4_2 if $dnode2Vtatus != offline then sleep 2000 diff --git a/tests/script/unique/arbitrator/dn3_mn1_vnode_corruptFile_online.sim b/tests/script/unique/arbitrator/dn3_mn1_vnode_corruptFile_online.sim index b3b71ccf51123b97db474ccaf3415c10b9aff946..1345bac4f8b510932ea955362cb8367d0f8bb880 100644 --- a/tests/script/unique/arbitrator/dn3_mn1_vnode_corruptFile_online.sim +++ b/tests/script/unique/arbitrator/dn3_mn1_vnode_corruptFile_online.sim @@ -59,7 +59,7 @@ $totalTableNum = 100 $sleepTimer = 3000 $db = db -sql create database $db replica 3 maxTables $totalTableNum +sql create database $db replica 2 maxTables $totalTableNum sql use $db # create table , insert data @@ -141,8 +141,8 @@ print show vgroups: print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1 print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2 print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3 -$dnode2Vtatus = $data4_2 -$dnode3Vtatus = $data7_2 +$dnode2Vtatus = $data7_2 +$dnode3Vtatus = $data4_2 if $dnode2Vtatus != offline then sleep 2000 diff --git a/tests/script/unique/arbitrator/dn3_mn2_killDnode.sim b/tests/script/unique/arbitrator/dn3_mn2_killDnode.sim new file mode 100644 index 0000000000000000000000000000000000000000..57a833b8de3f956b3d8e0422fa23750362c15bfd --- /dev/null +++ b/tests/script/unique/arbitrator/dn3_mn2_killDnode.sim @@ -0,0 +1,126 @@ +system sh/stop_dnodes.sh +system sh/deploy.sh -n dnode1 -i 1 +system sh/deploy.sh -n dnode2 -i 2 +system sh/deploy.sh -n dnode3 -i 3 +system sh/deploy.sh -n dnode4 -i 4 + +system sh/cfg.sh -n dnode1 -c numOfMnodes -v 2 +system sh/cfg.sh -n dnode2 -c numOfMnodes -v 2 +system sh/cfg.sh -n dnode3 -c numOfMnodes -v 2 + +system sh/cfg.sh -n dnode1 -c walLevel -v 2 +system sh/cfg.sh -n dnode2 -c walLevel -v 2 +system sh/cfg.sh -n dnode3 -c walLevel -v 2 +system sh/cfg.sh -n dnode4 -c walLevel -v 2 + +system sh/cfg.sh -n dnode1 -c balanceInterval -v 10 +system sh/cfg.sh -n dnode2 -c balanceInterval -v 10 +system sh/cfg.sh -n dnode3 -c balanceInterval -v 10 +system sh/cfg.sh -n dnode4 -c balanceInterval -v 10 + +system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4 +system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4 +system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4 +system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4 + +#system sh/cfg.sh -n dnode1 -c alternativeRole -v 2 +#system sh/cfg.sh -n dnode2 -c alternativeRole -v 2 +#system sh/cfg.sh -n dnode3 -c alternativeRole -v 2 +#system sh/cfg.sh -n dnode4 -c alternativeRole -v 2 + +system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 4 +system sh/cfg.sh -n dnode2 -c maxtablesPerVnode -v 4 +system sh/cfg.sh -n dnode3 -c maxtablesPerVnode -v 4 +system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 4 +system sh/cfg.sh -n dnode5 -c maxtablesPerVnode -v 4 + +system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator +system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator +system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator + +print ============== step0: start tarbitrator +system sh/exec_tarbitrator.sh -s start + +print ============== step1: start dnode1, only deploy mnode +system sh/exec.sh -n dnode1 -s start +sleep 3000 +sql connect + +print ============== step2: start dnode2/dnode3 and add into cluster , then create database with replica 3, and create table to max tables +system sh/exec.sh -n dnode2 -s start +system sh/exec.sh -n dnode3 -s start +#system sh/exec.sh -n dnode4 -s start +sql create dnode $hostname2 +sleep 3000 +sql create dnode $hostname3 +#sql create dnode $hostname4 +sleep 3000 + +$totalTableNum = 4 +$sleepTimer = 3000 + +$db = db +sql create database $db replica 3 +sql use $db + +# create table , insert data +$stb = stb +sql create table $stb (ts timestamp, c1 int) tags(t1 int) +$rowNum = 10 +$tblNum = $totalTableNum +$totalRows = 0 +$tsStart = 1420041600000 + +$i = 0 +while $i < $tblNum + $tb = tb . $i + sql create table $tb using $stb tags( $i ) + + $x = 0 + while $x < $rowNum + $ts = $tsStart + $x + sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) + $x = $x + 10 + endw + $totalRows = $totalRows + $x + print info: inserted $x rows into $tb and totalRows: $totalRows + $i = $i + 1 +endw + +sql select count(*) from $stb +print data00:$data00 totalRows:$totalRows +if $data00 != $totalRows then + return -1 +endi + + +print ============== step3: stop dnode2 +system sh/exec.sh -n dnode2 -s stop +sleep 3000 + +sql show mnodes +print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 +print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 +print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 +#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 +$mnode1Status = $data2_1 +$mnode2Status = $data2_2 +$mnode3Status = $data2_3 +#$mnode4Status = $data2_4 + +if $mnode1Status != master then + return -1 +endi + +if $mnode2Status != offline then + return -1 +endi + +sql reset query cache +sql select count(*) from $stb +print data00:$data00 totalRows:$totalRows +if $data00 != $totalRows then + return -1 +endi + + diff --git a/tests/script/unique/arbitrator/offline_replica2_alterTable_online.sim b/tests/script/unique/arbitrator/offline_replica2_alterTable_online.sim index 990c77b0506019ace2bcc7a0ade1be09a0515638..bcbb7e81a58ca8cd3c883cd3678ea2d31034742b 100644 --- a/tests/script/unique/arbitrator/offline_replica2_alterTable_online.sim +++ b/tests/script/unique/arbitrator/offline_replica2_alterTable_online.sim @@ -47,7 +47,7 @@ system sh/exec.sh -n dnode1 -s start sleep 3000 sql connect -print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data +print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 2, and create table, insert data system sh/exec.sh -n dnode2 -s start #system sh/exec.sh -n dnode3 -s start system sh/exec.sh -n dnode4 -s start @@ -60,13 +60,13 @@ $totalTableNum = 100 $sleepTimer = 3000 $db = db -print create database $db replica 3 maxTables $totalTableNum -sql create database $db replica 3 maxTables $totalTableNum +print create database $db replica 2 maxTables $totalTableNum +sql create database $db replica 2 maxTables $totalTableNum sql use $db # create table , insert data $stb = stb -sql create table $stb (ts timestamp, c1 int) tags(t1 int) +sql create table $stb (ts timestamp, c1 int, c2 int) tags(t1 int) $rowNum = 500 $tblNum = $totalTableNum $totalRows = 0 @@ -81,8 +81,8 @@ while $i < $tblNum $x = 0 while $x < $rowNum $ts = $tsStart + $x - sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x ) - $x = $x + 60 + sql insert into $tb values ( $ts + 0a , $x , $x ) ( $ts + 1a , $x , $x ) ( $ts + 2a , $x , $x ) ( $ts + 3a , $x , $x ) ( $ts + 4a , $x , $x ) ( $ts + 5a , $x , $x ) ( $ts + 6a , $x , $x ) ( $ts + 7a , $x , $x ) ( $ts + 8a , $x , $x ) ( $ts + 9a , $x , $x ) ( $ts + 10a , $x , $x ) ( $ts + 11a , $x , $x ) ( $ts + 12a , $x , $x ) ( $ts + 13a , $x , $x ) ( $ts + 14a , $x , $x ) ( $ts + 15a , $x , $x ) ( $ts + 16a , $x , $x ) ( $ts + 17a , $x , $x ) ( $ts + 18a , $x , $x ) ( $ts + 19a , $x , $x ) + $x = $x + 20 endw $totalRows = $totalRows + $x print info: inserted $x rows into $tb and totalRows: $totalRows @@ -113,8 +113,8 @@ print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 $dnode2Status = $data4_2 -$dnode3Status = $data4_3 -$dnode4Status = $data4_4 +#$dnode3Status = $data4_3 +$dnode4Status = $data4_3 #$dnode5Status = $data4_5 if $dnode4Status != offline then @@ -151,7 +151,7 @@ sql alter table $stb add column f1 double $i = 0 while $i < $tblNum $tb = tb . $i - sql inset into $tb values (now, 10001) (now + 1s, 10002) (now + 2s, 10003) (now + 3s, 10004) + sql insert into $tb values (now, 10001, 1.0001) (now + 1s, 10002, 1.0002) (now + 2s, 10003, 1.0003) (now + 3s, 10004, 1.0004) $i = $i + 1 endw $addRows = 4 * $tblNum @@ -174,8 +174,8 @@ print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 #$dnode2Status = $data4_2 -$dnode3Status = $data4_3 -$dnode4Status = $data4_4 +#$dnode3Status = $data4_3 +$dnode4Status = $data4_3 #$dnode5Status = $data4_5 if $dnode4Status != ready then diff --git a/tests/script/unique/arbitrator/offline_replica2_alterTag_online.sim b/tests/script/unique/arbitrator/offline_replica2_alterTag_online.sim new file mode 100644 index 0000000000000000000000000000000000000000..54e5c6a81f5fde0e3ae1786b6d785589f6dea523 --- /dev/null +++ b/tests/script/unique/arbitrator/offline_replica2_alterTag_online.sim @@ -0,0 +1,232 @@ +system sh/stop_dnodes.sh +system sh/deploy.sh -n dnode1 -i 1 +system sh/deploy.sh -n dnode2 -i 2 +system sh/deploy.sh -n dnode3 -i 3 +system sh/deploy.sh -n dnode4 -i 4 + +system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1 +system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1 +system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1 +system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1 + +system sh/cfg.sh -n dnode1 -c walLevel -v 2 +system sh/cfg.sh -n dnode2 -c walLevel -v 2 +system sh/cfg.sh -n dnode3 -c walLevel -v 2 +system sh/cfg.sh -n dnode4 -c walLevel -v 2 + +system sh/cfg.sh -n dnode1 -c balanceInterval -v 10 +system sh/cfg.sh -n dnode2 -c balanceInterval -v 10 +system sh/cfg.sh -n dnode3 -c balanceInterval -v 10 +system sh/cfg.sh -n dnode4 -c balanceInterval -v 10 + +system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4 +system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4 +system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4 +system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4 + +#system sh/cfg.sh -n dnode1 -c alternativeRole -v 1 +#system sh/cfg.sh -n dnode2 -c alternativeRole -v 2 +#system sh/cfg.sh -n dnode3 -c alternativeRole -v 2 +#system sh/cfg.sh -n dnode4 -c alternativeRole -v 2 + +system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 4 +system sh/cfg.sh -n dnode2 -c maxtablesPerVnode -v 4 +system sh/cfg.sh -n dnode3 -c maxtablesPerVnode -v 4 +system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 4 + +system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator +system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator +system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator +system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator + +print ============== step0: start tarbitrator +system sh/exec_tarbitrator.sh -s start + +print ============== step1: start dnode1, only deploy mnode +system sh/exec.sh -n dnode1 -s start +sleep 3000 +sql connect + +print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 2, and create table, insert data +system sh/exec.sh -n dnode2 -s start +#system sh/exec.sh -n dnode3 -s start +system sh/exec.sh -n dnode4 -s start +sql create dnode $hostname2 +#sql create dnode $hostname3 +sql create dnode $hostname4 +sleep 3000 + +$totalTableNum = 10 +$sleepTimer = 3000 +$maxTables = $totalTableNum * 2 + +$db = db +print create database $db replica 2 maxTables $maxTables +sql create database $db replica 2 maxTables $maxTables +sql use $db + +# create table , insert data +$stb = stb +sql create table $stb (ts timestamp, c1 int, c2 int) tags(t1 int) +$rowNum = 500 +$tblNum = $totalTableNum +$totalRows = 0 +$tsStart = 1420041600000 +$tsEnd = 0 + +$i = 0 +while $i < $tblNum + $tb = tb . $i + sql create table $tb using $stb tags( $i ) + + $x = 0 + while $x < $rowNum + $ts = $tsStart + $x + sql insert into $tb values ( $ts + 0a , $x , $x ) ( $ts + 1a , $x , $x ) ( $ts + 2a , $x , $x ) ( $ts + 3a , $x , $x ) ( $ts + 4a , $x , $x ) ( $ts + 5a , $x , $x ) ( $ts + 6a , $x , $x ) ( $ts + 7a , $x , $x ) ( $ts + 8a , $x , $x ) ( $ts + 9a , $x , $x ) ( $ts + 10a , $x , $x ) ( $ts + 11a , $x , $x ) ( $ts + 12a , $x , $x ) ( $ts + 13a , $x , $x ) ( $ts + 14a , $x , $x ) ( $ts + 15a , $x , $x ) ( $ts + 16a , $x , $x ) ( $ts + 17a , $x , $x ) ( $ts + 18a , $x , $x ) ( $ts + 19a , $x , $x ) + $x = $x + 20 + endw + $totalRows = $totalRows + $x + print info: inserted $x rows into $tb and totalRows: $totalRows + $i = $i + 1 +endw +$tsEnd = $tsStart + $totalRows / $tblNum + +sql select count(*) from $stb +print data00 $data00 +if $data00 != $totalRows then + return -1 +endi + +print ============== step3: stop dnode4 +system sh/exec.sh -n dnode4 -s stop -x SIGINT +sleep $sleepTimer +wait_dnode4_offline_0: +sql show dnodes +if $rows != 3 then + sleep 2000 + goto wait_dnode4_offline_0 +endi +print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 +print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 +print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 +#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 +#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5 +#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 +#$dnode1Status = $data4_1 +$dnode2Status = $data4_2 +#$dnode3Status = $data4_3 +$dnode4Status = $data4_3 +#$dnode5Status = $data4_5 + +if $dnode4Status != offline then + sleep 2000 + goto wait_dnode4_offline_0 +endi + +wait_dnode4_vgroup_offline: +sql show vgroups +if $rows != 1 then + sleep 2000 + goto wait_dnode4_vgroup_offline +endi +print show vgroups: +print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1 +print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2 +print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3 +$dnode4Vtatus = $data4_2 +$dnode3Vtatus = $data7_2 + +if $dnode4Vtatus != offline then + sleep 2000 + goto wait_dnode4_vgroup_offline +endi +if $dnode3Vtatus != master then + sleep 2000 + goto wait_dnode4_vgroup_offline +endi + +print ============== step4: alter table and tag, then drop all sub tables, recreate som subtable and insert more data rows +sql alter table $stb drop column c1 +sql alter table $stb add column f1 double + +sql alter table $stb add tag t2 int +sql alter table $stb add tag t3 int +sql alter table $stb drop tag t1 + +$i = 0 +while $i < $tblNum + $tb = tb . $i + sql drop table $tb + $i = $i + 1 +endw + +$totalRows = 0 +$i = 0 +while $i < $tblNum + $tb = tb . $i + sql create table $tb using $stb tags( $i , $i ) + + $x = 0 + while $x < $rowNum + $ts = $tsStart + $x + sql insert into $tb values ( $ts + 0a , $x , $x ) ( $ts + 1a , $x , $x ) ( $ts + 2a , $x , $x ) ( $ts + 3a , $x , $x ) ( $ts + 4a , $x , $x ) ( $ts + 5a , $x , $x ) ( $ts + 6a , $x , $x ) ( $ts + 7a , $x , $x ) ( $ts + 8a , $x , $x ) ( $ts + 9a , $x , $x ) ( $ts + 10a , $x , $x ) ( $ts + 11a , $x , $x ) ( $ts + 12a , $x , $x ) ( $ts + 13a , $x , $x ) ( $ts + 14a , $x , $x ) ( $ts + 15a , $x , $x ) ( $ts + 16a , $x , $x ) ( $ts + 17a , $x , $x ) ( $ts + 18a , $x , $x ) ( $ts + 19a , $x , $x ) + $x = $x + 20 + endw + $totalRows = $totalRows + $x + print info: inserted $x rows into $tb and totalRows: $totalRows + $i = $i + 1 +endw +$tsEnd = $tsStart + $totalRows / $tblNum + +sql select count(*) from $stb +print data00 $data00 +if $data00 != $totalRows then + return -1 +endi + +print ============== step5: restart dnode4, waiting dnode4 synced +system sh/exec.sh -n dnode4 -s start + +wait_dnode4_ready: +sql show dnodes +if $rows != 3 then + sleep 2000 + goto wait_dnode4_ready +endi +print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 +print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 +print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 +print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 +#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5 +#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 +#$dnode1Status = $data4_1 +#$dnode2Status = $data4_2 +#$dnode3Status = $data4_3 +$dnode4Status = $data4_3 +#$dnode5Status = $data4_5 + +if $dnode4Status != ready then + sleep 2000 + goto wait_dnode4_ready +endi + +print ============== step6: check result + +sql reset query cache + +$cnt = 0 +wait_table_dropped: +$cnt = $cnt + 1 +if $cnt == 20 then + return -1 +endi +sql select count(*) from $stb +if $data00 != $totalRows then + print data00: $data00 totalRows: $totalRows + sleep 2000 + goto wait_table_dropped +endi + + + + diff --git a/tests/script/unique/arbitrator/offline_replica2_createTable_online.sim b/tests/script/unique/arbitrator/offline_replica2_createTable_online.sim index eb76908ac9f3b6ac8635e194b05948a16652e7a9..e9b5e484eb0d4a5aaf9968c1d509dfa858f5f462 100644 --- a/tests/script/unique/arbitrator/offline_replica2_createTable_online.sim +++ b/tests/script/unique/arbitrator/offline_replica2_createTable_online.sim @@ -47,7 +47,7 @@ system sh/exec.sh -n dnode1 -s start sleep 3000 sql connect -print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data +print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 2, and create table, insert data system sh/exec.sh -n dnode2 -s start #system sh/exec.sh -n dnode3 -s start system sh/exec.sh -n dnode4 -s start @@ -59,9 +59,11 @@ sleep 3000 $totalTableNum = 100 $sleepTimer = 3000 +$maxTables = $totalTableNum * 2 + $db = db -print create database $db replica 3 maxTables $totalTableNum -sql create database $db replica 3 maxTables $totalTableNum +print create database $db replica 2 maxTables $maxTables +sql create database $db replica 2 maxTables $maxTables sql use $db # create table , insert data @@ -113,8 +115,8 @@ print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 $dnode2Status = $data4_2 -$dnode3Status = $data4_3 -$dnode4Status = $data4_4 +#$dnode3Status = $data4_3 +$dnode4Status = $data4_3 #$dnode5Status = $data4_5 if $dnode4Status != offline then @@ -186,8 +188,8 @@ print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 #$dnode2Status = $data4_2 -$dnode3Status = $data4_3 -$dnode4Status = $data4_4 +#$dnode3Status = $data4_3 +$dnode4Status = $data4_3 #$dnode5Status = $data4_5 if $dnode4Status != ready then diff --git a/tests/script/unique/arbitrator/offline_replica2_dropDb_online.sim b/tests/script/unique/arbitrator/offline_replica2_dropDb_online.sim index f4af4f4c9dbc7c9c019dabcb28539c0ab576b9ed..e2ffc2ab1d85451a94b617b4ca139113ed58f714 100644 --- a/tests/script/unique/arbitrator/offline_replica2_dropDb_online.sim +++ b/tests/script/unique/arbitrator/offline_replica2_dropDb_online.sim @@ -113,8 +113,8 @@ print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 $dnode2Status = $data4_2 -$dnode3Status = $data4_3 -$dnode4Status = $data4_4 +#$dnode3Status = $data4_3 +$dnode4Status = $data4_3 #$dnode5Status = $data4_5 if $dnode4Status != offline then diff --git a/tests/script/unique/arbitrator/offline_replica2_dropTable_online.sim b/tests/script/unique/arbitrator/offline_replica2_dropTable_online.sim index 56e468bf1a38dbf768b68f0d7bf36d311016f9a6..ba8b1cd3b52c102046f513c06de9f8b80d9ae0cf 100644 --- a/tests/script/unique/arbitrator/offline_replica2_dropTable_online.sim +++ b/tests/script/unique/arbitrator/offline_replica2_dropTable_online.sim @@ -47,7 +47,7 @@ system sh/exec.sh -n dnode1 -s start sleep 3000 sql connect -print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data +print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 2, and create table, insert data system sh/exec.sh -n dnode2 -s start #system sh/exec.sh -n dnode3 -s start system sh/exec.sh -n dnode4 -s start @@ -60,8 +60,8 @@ $totalTableNum = 100 $sleepTimer = 3000 $db = db -print create database $db replica 3 maxTables $totalTableNum -sql create database $db replica 3 maxTables $totalTableNum +print create database $db replica 2 maxTables $totalTableNum +sql create database $db replica 2 maxTables $totalTableNum sql use $db # create table , insert data @@ -113,8 +113,8 @@ print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 $dnode2Status = $data4_2 -$dnode3Status = $data4_3 -$dnode4Status = $data4_4 +#$dnode3Status = $data4_3 +$dnode4Status = $data4_3 #$dnode5Status = $data4_5 if $dnode4Status != offline then @@ -172,8 +172,8 @@ print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 #$dnode2Status = $data4_2 -$dnode3Status = $data4_3 -$dnode4Status = $data4_4 +#$dnode3Status = $data4_3 +$dnode4Status = $data4_3 #$dnode5Status = $data4_5 if $dnode4Status != ready then diff --git a/tests/script/unique/arbitrator/offline_replica3_alterTable_online.sim b/tests/script/unique/arbitrator/offline_replica3_alterTable_online.sim index 24deed212dd0df338afe7296cc7d998498620c26..c7f02fdc511e928ec56b93bb800e285c23526558 100644 --- a/tests/script/unique/arbitrator/offline_replica3_alterTable_online.sim +++ b/tests/script/unique/arbitrator/offline_replica3_alterTable_online.sim @@ -66,7 +66,7 @@ sql use $db # create table , insert data $stb = stb -sql create table $stb (ts timestamp, c1 int) tags(t1 int) +sql create table $stb (ts timestamp, c1 int, c2 int) tags(t1 int) $rowNum = 500 $tblNum = $totalTableNum $totalRows = 0 @@ -81,8 +81,8 @@ while $i < $tblNum $x = 0 while $x < $rowNum $ts = $tsStart + $x - sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x ) - $x = $x + 60 + sql insert into $tb values ( $ts + 0a , $x , $x ) ( $ts + 1a , $x , $x ) ( $ts + 2a , $x , $x ) ( $ts + 3a , $x , $x ) ( $ts + 4a , $x , $x ) ( $ts + 5a , $x , $x ) ( $ts + 6a , $x , $x ) ( $ts + 7a , $x , $x ) ( $ts + 8a , $x , $x ) ( $ts + 9a , $x , $x ) ( $ts + 10a , $x , $x ) ( $ts + 11a , $x , $x ) ( $ts + 12a , $x , $x ) ( $ts + 13a , $x , $x ) ( $ts + 14a , $x , $x ) ( $ts + 15a , $x , $x ) ( $ts + 16a , $x , $x ) ( $ts + 17a , $x , $x ) ( $ts + 18a , $x , $x ) ( $ts + 19a , $x , $x ) + $x = $x + 20 endw $totalRows = $totalRows + $x print info: inserted $x rows into $tb and totalRows: $totalRows @@ -151,7 +151,7 @@ sql alter table $stb add column f1 double $i = 0 while $i < $tblNum $tb = tb . $i - sql inset into $tb values (now, 10001) (now + 1s, 10002) (now + 2s, 10003) (now + 3s, 10004) + sql insert into $tb values (now, 10001, 1.0001) (now + 1s, 10002, 1.0002) (now + 2s, 10003, 1.0003) (now + 3s, 10004, 1.0004) $i = $i + 1 endw $addRows = 4 * $tblNum diff --git a/tests/script/unique/arbitrator/offline_replica3_alterTag_online.sim b/tests/script/unique/arbitrator/offline_replica3_alterTag_online.sim new file mode 100644 index 0000000000000000000000000000000000000000..97a8a0d6e06e760ad3acb386589ceae91fa63e9b --- /dev/null +++ b/tests/script/unique/arbitrator/offline_replica3_alterTag_online.sim @@ -0,0 +1,232 @@ +system sh/stop_dnodes.sh +system sh/deploy.sh -n dnode1 -i 1 +system sh/deploy.sh -n dnode2 -i 2 +system sh/deploy.sh -n dnode3 -i 3 +system sh/deploy.sh -n dnode4 -i 4 + +system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1 +system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1 +system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1 +system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1 + +system sh/cfg.sh -n dnode1 -c walLevel -v 2 +system sh/cfg.sh -n dnode2 -c walLevel -v 2 +system sh/cfg.sh -n dnode3 -c walLevel -v 2 +system sh/cfg.sh -n dnode4 -c walLevel -v 2 + +system sh/cfg.sh -n dnode1 -c balanceInterval -v 10 +system sh/cfg.sh -n dnode2 -c balanceInterval -v 10 +system sh/cfg.sh -n dnode3 -c balanceInterval -v 10 +system sh/cfg.sh -n dnode4 -c balanceInterval -v 10 + +system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4 +system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4 +system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4 +system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4 + +#system sh/cfg.sh -n dnode1 -c alternativeRole -v 1 +#system sh/cfg.sh -n dnode2 -c alternativeRole -v 2 +#system sh/cfg.sh -n dnode3 -c alternativeRole -v 2 +#system sh/cfg.sh -n dnode4 -c alternativeRole -v 2 + +system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 4 +system sh/cfg.sh -n dnode2 -c maxtablesPerVnode -v 4 +system sh/cfg.sh -n dnode3 -c maxtablesPerVnode -v 4 +system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 4 + +system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator +system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator +system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator +system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator + +print ============== step0: start tarbitrator +system sh/exec_tarbitrator.sh -s start + +print ============== step1: start dnode1, only deploy mnode +system sh/exec.sh -n dnode1 -s start +sleep 3000 +sql connect + +print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data +system sh/exec.sh -n dnode2 -s start +system sh/exec.sh -n dnode3 -s start +system sh/exec.sh -n dnode4 -s start +sql create dnode $hostname2 +sql create dnode $hostname3 +sql create dnode $hostname4 +sleep 3000 + +$totalTableNum = 10 +$sleepTimer = 3000 +$maxTables = $totalTableNum * 2 + +$db = db +print create database $db replica 3 maxTables $maxTables +sql create database $db replica 3 maxTables $maxTables +sql use $db + +# create table , insert data +$stb = stb +sql create table $stb (ts timestamp, c1 int, c2 int) tags(t1 int) +$rowNum = 500 +$tblNum = $totalTableNum +$totalRows = 0 +$tsStart = 1420041600000 +$tsEnd = 0 + +$i = 0 +while $i < $tblNum + $tb = tb . $i + sql create table $tb using $stb tags( $i ) + + $x = 0 + while $x < $rowNum + $ts = $tsStart + $x + sql insert into $tb values ( $ts + 0a , $x , $x ) ( $ts + 1a , $x , $x ) ( $ts + 2a , $x , $x ) ( $ts + 3a , $x , $x ) ( $ts + 4a , $x , $x ) ( $ts + 5a , $x , $x ) ( $ts + 6a , $x , $x ) ( $ts + 7a , $x , $x ) ( $ts + 8a , $x , $x ) ( $ts + 9a , $x , $x ) ( $ts + 10a , $x , $x ) ( $ts + 11a , $x , $x ) ( $ts + 12a , $x , $x ) ( $ts + 13a , $x , $x ) ( $ts + 14a , $x , $x ) ( $ts + 15a , $x , $x ) ( $ts + 16a , $x , $x ) ( $ts + 17a , $x , $x ) ( $ts + 18a , $x , $x ) ( $ts + 19a , $x , $x ) + $x = $x + 20 + endw + $totalRows = $totalRows + $x + print info: inserted $x rows into $tb and totalRows: $totalRows + $i = $i + 1 +endw +$tsEnd = $tsStart + $totalRows / $tblNum + +sql select count(*) from $stb +print data00 $data00 +if $data00 != $totalRows then + return -1 +endi + +print ============== step3: stop dnode4 +system sh/exec.sh -n dnode4 -s stop -x SIGINT +sleep $sleepTimer +wait_dnode4_offline_0: +sql show dnodes +if $rows != 4 then + sleep 2000 + goto wait_dnode4_offline_0 +endi +print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 +print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 +print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 +#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 +#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5 +#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 +#$dnode1Status = $data4_1 +$dnode2Status = $data4_2 +$dnode3Status = $data4_3 +$dnode4Status = $data4_4 +#$dnode5Status = $data4_5 + +if $dnode4Status != offline then + sleep 2000 + goto wait_dnode4_offline_0 +endi + +wait_dnode4_vgroup_offline: +sql show vgroups +if $rows != 1 then + sleep 2000 + goto wait_dnode4_vgroup_offline +endi +print show vgroups: +print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1 +print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2 +print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3 +$dnode4Vtatus = $data4_2 +$dnode3Vtatus = $data7_2 + +if $dnode4Vtatus != offline then + sleep 2000 + goto wait_dnode4_vgroup_offline +endi +if $dnode3Vtatus != master then + sleep 2000 + goto wait_dnode4_vgroup_offline +endi + +print ============== step4: alter table and tag, then drop all sub tables, recreate som subtable and insert more data rows +sql alter table $stb drop column c1 +sql alter table $stb add column f1 double + +sql alter table $stb add tag t2 int +sql alter table $stb add tag t3 int +sql alter table $stb drop tag t1 + +$i = 0 +while $i < $tblNum + $tb = tb . $i + sql drop table $tb + $i = $i + 1 +endw + +$totalRows = 0 +$i = 0 +while $i < $tblNum + $tb = tb . $i + sql create table $tb using $stb tags( $i , $i ) + + $x = 0 + while $x < $rowNum + $ts = $tsStart + $x + sql insert into $tb values ( $ts + 0a , $x , $x ) ( $ts + 1a , $x , $x ) ( $ts + 2a , $x , $x ) ( $ts + 3a , $x , $x ) ( $ts + 4a , $x , $x ) ( $ts + 5a , $x , $x ) ( $ts + 6a , $x , $x ) ( $ts + 7a , $x , $x ) ( $ts + 8a , $x , $x ) ( $ts + 9a , $x , $x ) ( $ts + 10a , $x , $x ) ( $ts + 11a , $x , $x ) ( $ts + 12a , $x , $x ) ( $ts + 13a , $x , $x ) ( $ts + 14a , $x , $x ) ( $ts + 15a , $x , $x ) ( $ts + 16a , $x , $x ) ( $ts + 17a , $x , $x ) ( $ts + 18a , $x , $x ) ( $ts + 19a , $x , $x ) + $x = $x + 20 + endw + $totalRows = $totalRows + $x + print info: inserted $x rows into $tb and totalRows: $totalRows + $i = $i + 1 +endw +$tsEnd = $tsStart + $totalRows / $tblNum + +sql select count(*) from $stb +print data00 $data00 +if $data00 != $totalRows then + return -1 +endi + +print ============== step5: restart dnode4, waiting dnode4 synced +system sh/exec.sh -n dnode4 -s start + +wait_dnode4_ready: +sql show dnodes +if $rows != 4 then + sleep 2000 + goto wait_dnode4_ready +endi +print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 +print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 +print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 +print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 +#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5 +#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 +#$dnode1Status = $data4_1 +#$dnode2Status = $data4_2 +$dnode3Status = $data4_3 +$dnode4Status = $data4_4 +#$dnode5Status = $data4_5 + +if $dnode4Status != ready then + sleep 2000 + goto wait_dnode4_ready +endi + +print ============== step6: check result + +sql reset query cache + +$cnt = 0 +wait_table_dropped: +$cnt = $cnt + 1 +if $cnt == 20 then + return -1 +endi +sql select count(*) from $stb +if $data00 != $totalRows then + print data00: $data00 totalRows: $totalRows + sleep 2000 + goto wait_table_dropped +endi + + + + diff --git a/tests/script/unique/arbitrator/offline_replica3_createTable_online.sim b/tests/script/unique/arbitrator/offline_replica3_createTable_online.sim index f395d5721192c33bdcdbd8a057f2edd0ca454ada..113d322d8556938555105f7adefe7adccd6e6fe3 100644 --- a/tests/script/unique/arbitrator/offline_replica3_createTable_online.sim +++ b/tests/script/unique/arbitrator/offline_replica3_createTable_online.sim @@ -58,10 +58,11 @@ sleep 3000 $totalTableNum = 100 $sleepTimer = 3000 +$maxTables = $totalTableNum * 2 $db = db -print create database $db replica 3 maxTables $totalTableNum -sql create database $db replica 3 maxTables $totalTableNum +print create database $db replica 3 maxTables $maxTables +sql create database $db replica 3 maxTables $maxTables sql use $db # create table , insert data diff --git a/tests/script/unique/arbitrator/sync_replica2_alterTable_add.sim b/tests/script/unique/arbitrator/sync_replica2_alterTable_add.sim index 06747ed5892d29e6c73372ac45ccdcaac9aef37f..9730842938f018bb89cb40b16d960530eee3a19f 100644 --- a/tests/script/unique/arbitrator/sync_replica2_alterTable_add.sim +++ b/tests/script/unique/arbitrator/sync_replica2_alterTable_add.sim @@ -47,7 +47,7 @@ system sh/exec.sh -n dnode1 -s start sleep 3000 sql connect -print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data +print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 2, and create table, insert data system sh/exec.sh -n dnode2 -s start #system sh/exec.sh -n dnode3 -s start system sh/exec.sh -n dnode4 -s start @@ -56,12 +56,12 @@ sql create dnode $hostname2 sql create dnode $hostname4 sleep 3000 -$totalTableNum = 100 +$totalTableNum = 10 $sleepTimer = 3000 $db = db -print create database $db replica 3 maxTables $totalTableNum -sql create database $db replica 3 maxTables $totalTableNum +print create database $db replica 2 maxTables $totalTableNum +sql create database $db replica 2 maxTables $totalTableNum sql use $db # create table , insert data @@ -113,8 +113,8 @@ print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 $dnode2Status = $data4_2 -$dnode3Status = $data4_3 -$dnode4Status = $data4_4 +#$dnode3Status = $data4_3 +$dnode4Status = $data4_3 #$dnode5Status = $data4_5 if $dnode4Status != offline then @@ -162,7 +162,7 @@ while $i < $tblNum endw sql select count(*) from $stb -print data00 $data00 +print data00:$data00 totalRows:$totalRows if $data00 != $totalRows then return -1 endi @@ -172,8 +172,8 @@ system sh/exec.sh -n dnode4 -s start run_back unique/arbitrator/sync_replica_alterTable_background_add.sim print ============== step6: check result -#in background.sim, add one column and insert 200 rows -$totalRows = $totalRows + 200 +#in background.sim, add one column and insert 36 rows +$totalRows = $totalRows + 36 $cnt = 0 wait_table_altered: @@ -183,7 +183,7 @@ if $cnt == 20 then endi sql select count(*) from $stb if $data00 != $totalRows then - print data00: $data00 + print data00:$data00 totalRows:$totalRows sleep 2000 goto wait_table_altered endi diff --git a/tests/script/unique/arbitrator/sync_replica2_alterTable_drop.sim b/tests/script/unique/arbitrator/sync_replica2_alterTable_drop.sim index ecd8208281a1467595cd928d853384eb7ad86ac3..21957871a522d9e2cd25ac9009d4b8021a9e302b 100644 --- a/tests/script/unique/arbitrator/sync_replica2_alterTable_drop.sim +++ b/tests/script/unique/arbitrator/sync_replica2_alterTable_drop.sim @@ -47,7 +47,7 @@ system sh/exec.sh -n dnode1 -s start sleep 3000 sql connect -print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data +print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 2, and create table, insert data system sh/exec.sh -n dnode2 -s start #system sh/exec.sh -n dnode3 -s start system sh/exec.sh -n dnode4 -s start @@ -56,12 +56,12 @@ sql create dnode $hostname2 sql create dnode $hostname4 sleep 3000 -$totalTableNum = 100 +$totalTableNum = 10 $sleepTimer = 3000 $db = db -print create database $db replica 3 maxTables $totalTableNum -sql create database $db replica 3 maxTables $totalTableNum +print create database $db replica 2 maxTables $totalTableNum +sql create database $db replica 2 maxTables $totalTableNum sql use $db # create table , insert data @@ -113,8 +113,8 @@ print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 $dnode2Status = $data4_2 -$dnode3Status = $data4_3 -$dnode4Status = $data4_4 +#$dnode3Status = $data4_3 +$dnode4Status = $data4_3 #$dnode5Status = $data4_5 if $dnode4Status != offline then @@ -173,7 +173,7 @@ run_back unique/arbitrator/sync_replica_alterTable_background_drop.sim print ============== step6: check result #in background.sim, drop one column and add one new column, then insert 200 rows -$totalRows = $totalRows + 200 +$totalRows = $totalRows + 36 $cnt = 0 wait_table_altered: diff --git a/tests/script/unique/arbitrator/sync_replica2_dropDb.sim b/tests/script/unique/arbitrator/sync_replica2_dropDb.sim index fa19917e9f33af917e3a2afaac5b11739bed83f8..9836284af99358825b5705bf191d21fe628aad5f 100644 --- a/tests/script/unique/arbitrator/sync_replica2_dropDb.sim +++ b/tests/script/unique/arbitrator/sync_replica2_dropDb.sim @@ -56,7 +56,7 @@ sql create dnode $hostname2 sql create dnode $hostname4 sleep 3000 -$totalTableNum = 100 +$totalTableNum = 10 $sleepTimer = 3000 $db = db @@ -113,8 +113,8 @@ print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 $dnode2Status = $data4_2 -$dnode3Status = $data4_3 -$dnode4Status = $data4_4 +#$dnode3Status = $data4_3 +$dnode4Status = $data4_3 #$dnode5Status = $data4_5 if $dnode4Status != offline then diff --git a/tests/script/unique/arbitrator/sync_replica2_dropTable.sim b/tests/script/unique/arbitrator/sync_replica2_dropTable.sim index cca4586b35001ec98920d96b6e8af5a177fdd032..4793e8e535a4439e2601028b0a8390685f6905d3 100644 --- a/tests/script/unique/arbitrator/sync_replica2_dropTable.sim +++ b/tests/script/unique/arbitrator/sync_replica2_dropTable.sim @@ -56,7 +56,7 @@ sql create dnode $hostname2 sql create dnode $hostname4 sleep 3000 -$totalTableNum = 100 +$totalTableNum = 10 $sleepTimer = 3000 $db = db @@ -162,18 +162,18 @@ while $i < $tblNum endw sql select count(*) from $stb -print data00 $data00 +print data00:$data00 totalRows:$totalRows if $data00 != $totalRows then return -1 endi -print ============== step5: restart dnode4, while drop database in other thead when dnode4 is syncing +print ============== step5: restart dnode4, while drop some tables in other thread when dnode4 is syncing system sh/exec.sh -n dnode4 -s start run_back unique/arbitrator/sync_replica_dropTable_background.sim print ============== step6: check result -#in background.sim, drop 10 tables -$totalRows = $totalRows - 10800 +#in background.sim, drop 5 tables +$totalRows = $totalRows - 5400 $cnt = 0 wait_table_dropped: @@ -183,15 +183,15 @@ if $cnt == 20 then endi sql select count(*) from $stb if $data00 != $totalRows then - print data00: $data00 + print data00:$data00 totalRows:$totalRows sleep 2000 goto wait_table_dropped endi -$tblNum = $tblNum - 10 +$tblNum = $tblNum - 5 sql select count(tbname) from $stb if $data00 != $tblNum then - print data00: $data00 + print data00: $data00 tblNum: $tblNum sleep 2000 goto wait_table_dropped endi diff --git a/tests/script/unique/arbitrator/sync_replica3_alterTable_add.sim b/tests/script/unique/arbitrator/sync_replica3_alterTable_add.sim index d9dcea2b2212a468ac3465804e2553b4e2ddfe7c..9277ad2c85a6873b848e6022ebf006eb5107d605 100644 --- a/tests/script/unique/arbitrator/sync_replica3_alterTable_add.sim +++ b/tests/script/unique/arbitrator/sync_replica3_alterTable_add.sim @@ -56,7 +56,7 @@ sql create dnode $hostname3 sql create dnode $hostname4 sleep 3000 -$totalTableNum = 100 +$totalTableNum = 10 $sleepTimer = 3000 $db = db @@ -173,7 +173,7 @@ run_back unique/arbitrator/sync_replica_alterTable_background_add.sim print ============== step6: check result #in background.sim, add one column and insert 200 rows -$totalRows = $totalRows + 200 +$totalRows = $totalRows + 36 $cnt = 0 wait_table_altered: diff --git a/tests/script/unique/arbitrator/sync_replica3_alterTable_drop.sim b/tests/script/unique/arbitrator/sync_replica3_alterTable_drop.sim index 2c0a9f874796bd3911cfa7348364de9a6203e2a1..6593d6933b65120901a6a708068b04b6e1d21c51 100644 --- a/tests/script/unique/arbitrator/sync_replica3_alterTable_drop.sim +++ b/tests/script/unique/arbitrator/sync_replica3_alterTable_drop.sim @@ -56,7 +56,7 @@ sql create dnode $hostname3 sql create dnode $hostname4 sleep 3000 -$totalTableNum = 100 +$totalTableNum = 10 $sleepTimer = 3000 $db = db @@ -172,8 +172,8 @@ system sh/exec.sh -n dnode4 -s start run_back unique/arbitrator/sync_replica_alterTable_background_drop.sim print ============== step6: check result -#in background.sim, drop one column and add one new column, then insert 200 rows -$totalRows = $totalRows + 200 +#in background.sim, drop one column and add one new column, then insert 36 rows +$totalRows = $totalRows + 36 $cnt = 0 wait_table_altered: diff --git a/tests/script/unique/arbitrator/sync_replica3_dropDb.sim b/tests/script/unique/arbitrator/sync_replica3_dropDb.sim index e73291d6f33fbb4132cb6637f9ef005561366e5c..7099b1dc8e04e1d03d2e9c85b03579b8939e54f8 100644 --- a/tests/script/unique/arbitrator/sync_replica3_dropDb.sim +++ b/tests/script/unique/arbitrator/sync_replica3_dropDb.sim @@ -56,7 +56,7 @@ sql create dnode $hostname3 sql create dnode $hostname4 sleep 3000 -$totalTableNum = 100 +$totalTableNum = 10 $sleepTimer = 3000 $db = db diff --git a/tests/script/unique/arbitrator/sync_replica3_dropTable.sim b/tests/script/unique/arbitrator/sync_replica3_dropTable.sim index 20d157eeb58fdd3c67d0d5ba734600456adb8ca2..f902b41de57c1c6f687f12f1eb3a8cd1e94ed8b2 100644 --- a/tests/script/unique/arbitrator/sync_replica3_dropTable.sim +++ b/tests/script/unique/arbitrator/sync_replica3_dropTable.sim @@ -56,7 +56,7 @@ sql create dnode $hostname3 sql create dnode $hostname4 sleep 3000 -$totalTableNum = 100 +$totalTableNum = 10 $sleepTimer = 3000 $db = db @@ -143,7 +143,7 @@ if $dnode3Vtatus != master then sleep 2000 goto wait_dnode4_vgroup_offline endi - +sleep 2000 print ============== step4: insert more data rows $tsStart = $tsEnd + 1000 $i = 0 @@ -173,7 +173,7 @@ run_back unique/arbitrator/sync_replica_dropTable_background.sim print ============== step6: check result #in background.sim, drop 10 tables -$totalRows = $totalRows - 10800 +$totalRows = $totalRows - 5400 $cnt = 0 wait_table_dropped: @@ -188,7 +188,7 @@ if $data00 != $totalRows then goto wait_table_dropped endi -$tblNum = $tblNum - 10 +$tblNum = $tblNum - 5 sql select count(tbname) from $stb if $data00 != $tblNum then print data00: $data00 diff --git a/tests/script/unique/arbitrator/sync_replica_alterTable_background_add.sim b/tests/script/unique/arbitrator/sync_replica_alterTable_background_add.sim index c5f9157e268b64a5e078b24d2843bec130de94d3..3867aa3699cb84881c8b99eaa6ffa0813e8c785f 100644 --- a/tests/script/unique/arbitrator/sync_replica_alterTable_background_add.sim +++ b/tests/script/unique/arbitrator/sync_replica_alterTable_background_add.sim @@ -3,7 +3,7 @@ sql connect $db = db $stb = stb print =============== sync_replica_alterTable_background_add.sim step0: alter table and insert data -$totalTableNum = 100 +$totalTableNum = 10 sql use $db @@ -12,7 +12,7 @@ print alter table $stb add column f1 float sql alter table $stb add column f1 float $tblNum = $totalTableNum -$alterTblNum = 51 +$alterTblNum = 10 $i = 1 while $i < $alterTblNum diff --git a/tests/script/unique/arbitrator/sync_replica_alterTable_background_drop.sim b/tests/script/unique/arbitrator/sync_replica_alterTable_background_drop.sim index 5540eb96dfbe48b745bb9f728a31aa3d4068cd35..fb8bc60972e7ac5a2d5f1393fd5760168c3d843d 100644 --- a/tests/script/unique/arbitrator/sync_replica_alterTable_background_drop.sim +++ b/tests/script/unique/arbitrator/sync_replica_alterTable_background_drop.sim @@ -8,11 +8,11 @@ $totalTableNum = 100 sql use $db #sql create table $stb (ts timestamp, c1 int) tags(t1 int) -sql alter table $stb drop column c1 sql alter table $stb add column f1 double +sql alter table $stb drop column c1 $tblNum = $totalTableNum -$alterTblNum = 51 +$alterTblNum = 10 $i = 1 while $i < $alterTblNum diff --git a/tests/script/unique/arbitrator/sync_replica_dropTable_background.sim b/tests/script/unique/arbitrator/sync_replica_dropTable_background.sim index a52cecaa8e7026a9f891ee8179cdd86725ca0c7f..485253027a5d4521aac63ab8ad6f5f7ffba726e9 100644 --- a/tests/script/unique/arbitrator/sync_replica_dropTable_background.sim +++ b/tests/script/unique/arbitrator/sync_replica_dropTable_background.sim @@ -3,12 +3,12 @@ sql connect $db = db $stb = stb print =============== sync_replica_dropTable_background.sim step0: drop table -$totalTableNum = 100 +$totalTableNum = 6 sql use $db $tblNum = $totalTableNum -$dropTblNum = 11 +$dropTblNum = 6 $i = 1 while $i < $dropTblNum diff --git a/tests/script/unique/arbitrator/testSuite.sim b/tests/script/unique/arbitrator/testSuite.sim new file mode 100644 index 0000000000000000000000000000000000000000..d286ecfaf29ea68efc1197f03da9e8f4fb571917 --- /dev/null +++ b/tests/script/unique/arbitrator/testSuite.sim @@ -0,0 +1,36 @@ +run unique/arbitrator/dn2_mn1_cache_file_sync.sim +run unique/arbitrator/dn2_mn1_cache_file_sync_second.sim +run unique/arbitrator/dn3_mn1_full_createTableFail.sim +run unique/arbitrator/dn3_mn1_full_dropDnodeFail.sim +run unique/arbitrator/dn3_mn1_multiCreateDropTable.sim +run unique/arbitrator/dn3_mn1_nw_disable_timeout_autoDropDnode.sim +run unique/arbitrator/dn3_mn1_replica2_wal1_AddDelDnode.sim +run unique/arbitrator/dn3_mn1_replica_change_dropDnod.sim +run unique/arbitrator/dn3_mn1_replica_change.sim +run unique/arbitrator/dn3_mn1_stopDnode_timeout.sim +run unique/arbitrator/dn3_mn1_vnode_change.sim +run unique/arbitrator/dn3_mn1_vnode_corruptFile_offline.sim +run unique/arbitrator/dn3_mn1_vnode_corruptFile_online.sim +####run unique/arbitrator/dn3_mn1_vnode_delDir.sim +run unique/arbitrator/dn3_mn1_vnode_nomaster.sim +run unique/arbitrator/dn3_mn2_killDnode.sim +run unique/arbitrator/insert_duplicationTs.sim +run unique/arbitrator/offline_replica2_alterTable_online.sim +run unique/arbitrator/offline_replica2_alterTag_online.sim +run unique/arbitrator/offline_replica2_createTable_online.sim +run unique/arbitrator/offline_replica2_dropDb_online.sim +run unique/arbitrator/offline_replica2_dropTable_online.sim +run unique/arbitrator/offline_replica3_alterTable_online.sim +run unique/arbitrator/offline_replica3_alterTag_online.sim +run unique/arbitrator/offline_replica3_createTable_online.sim +run unique/arbitrator/offline_replica3_dropDb_online.sim +run unique/arbitrator/offline_replica3_dropTable_online.sim +run unique/arbitrator/replica_changeWithArbitrator.sim +run unique/arbitrator/sync_replica2_alterTable_add.sim +run unique/arbitrator/sync_replica2_alterTable_drop.sim +run unique/arbitrator/sync_replica2_dropDb.sim +run unique/arbitrator/sync_replica2_dropTable.sim +run unique/arbitrator/sync_replica3_alterTable_add.sim +run unique/arbitrator/sync_replica3_alterTable_drop.sim +run unique/arbitrator/sync_replica3_dropDb.sim +run unique/arbitrator/sync_replica3_dropTable.sim diff --git a/tests/script/unique/column/replica3.sim b/tests/script/unique/column/replica3.sim index c21f71dc2c6e9eefb0d61f81c38e08cfe4d95cf1..2d6c194ef806022f7ff5a81d9f906365c49cd197 100644 --- a/tests/script/unique/column/replica3.sim +++ b/tests/script/unique/column/replica3.sim @@ -29,8 +29,8 @@ while $x < 1010 $x = $x + 1 endw -sql_error create database d1 replica 2 wal 0 -sql create database d2 replica 1 wal 0 +sql_error create database d1 replica 2 wallevel 0 +sql_error create database d2 replica 1 wallevel 0 sql_error alter database d2 replica 2 system sh/exec.sh -n dnode1 -s stop -x SIGINT diff --git a/tests/script/unique/db/replica_add12.sim b/tests/script/unique/db/replica_add12.sim index ff0dffe0e2eb41a33d8e22f29684f987c7d4fde3..89502ce41984113d8638b7e5d057445f6f6e3454 100644 --- a/tests/script/unique/db/replica_add12.sim +++ b/tests/script/unique/db/replica_add12.sim @@ -148,25 +148,10 @@ print ========= step5 system sh/exec.sh -n dnode2 -s stop -x SIGINT sleep 5000 -sql select * from d1.t1 -if $rows != 2 then - return -1 -endi - -sql select * from d2.t2 -if $rows != 2 then - return -1 -endi - -sql select * from d3.t3 -if $rows != 2 then - return -1 -endi - -sql select * from d4.t4 -if $rows != 2 then - return -1 -endi +sql_error select * from d1.t1 +sql_error select * from d2.t2 +sql_error select * from d3.t3 +sql_error select * from d4.t4 print ===== insert data @@ -175,26 +160,6 @@ sql_error insert into d2.t2 values(now, 3) sql_error insert into d3.t3 values(now, 3) sql_error insert into d4.t4 values(now, 3) -sql select * from d1.t1 -if $rows != 2 then - return -1 -endi - -sql select * from d2.t2 -if $rows != 2 then - return -1 -endi - -sql select * from d3.t3 -if $rows != 2 then - return -1 -endi - -sql select * from d4.t4 -if $rows != 2 then - return -1 -endi - print ========= step6 system sh/exec.sh -n dnode2 -s start sleep 5000 @@ -234,25 +199,10 @@ sql_error insert into d2.t2 values(now, 3) sql_error insert into d3.t3 values(now, 3) sql_error insert into d4.t4 values(now, 3) -sql select * from d1.t1 -if $rows != 3 then - return -1 -endi - -sql select * from d2.t2 -if $rows != 3 then - return -1 -endi - -sql select * from d3.t3 -if $rows != 3 then - return -1 -endi - -sql select * from d4.t4 -if $rows != 3 then - return -1 -endi +sql_error select * from d1.t1 +sql_error select * from d2.t2 +sql_error select * from d3.t3 +sql_error select * from d4.t4 print ========= step7 system sh/exec.sh -n dnode3 -s start diff --git a/tests/script/unique/db/replica_reduce32.sim b/tests/script/unique/db/replica_reduce32.sim index bc08911a7c35708400c57361344f5115c27430a1..5516009369db9a1eb8bcbe31d8227eb6f43c3ee8 100644 --- a/tests/script/unique/db/replica_reduce32.sim +++ b/tests/script/unique/db/replica_reduce32.sim @@ -102,19 +102,15 @@ print ========= step4 system sh/exec.sh -n dnode2 -s stop -x SIGINT sleep 5000 -sql insert into d1.t1 values(now, 3) -x step1 -step1: -sql insert into d2.t2 values(now, 3) -x step2 -step2: -sql insert into d3.t3 values(now, 3) -x step3 -step3: -sql insert into d4.t4 values(now, 3) -x step4 -step4: +sql_error insert into d1.t1 values(now, 3) +sql_error insert into d2.t2 values(now, 3) +sql_error insert into d3.t3 values(now, 3) +sql_error insert into d4.t4 values(now, 3) -sql select * from d1.t1 -sql select * from d2.t2 -sql select * from d3.t3 -sql select * from d4.t4 +sql_error select * from d1.t1 +sql_error select * from d2.t2 +sql_error select * from d3.t3 +sql_error select * from d4.t4 print ========= step5 system sh/exec.sh -n dnode2 -s start @@ -126,14 +122,10 @@ sleep 5000 sql reset query cache sleep 1000 -sql insert into d1.t1 values(now, 3) -x step11 -step11: -sql insert into d2.t2 values(now, 3) -x step21 -step21: -sql insert into d3.t3 values(now, 3) -x step31 -step31: -sql insert into d4.t4 values(now, 3) -x step41 -step41: +sql_error insert into d1.t1 values(now, 3) +sql_error insert into d2.t2 values(now, 3) +sql_error insert into d3.t3 values(now, 3) +sql_error insert into d4.t4 values(now, 3) print ========= step6 system sh/exec.sh -n dnode3 -s start diff --git a/tests/script/unique/http/opentsdb.sim b/tests/script/unique/http/opentsdb.sim index 61ce5127b4491a6c87e09a1df35ddf15fbe1f10d..58f6609d15d46ce810acdacc795c20d4c510e187 100644 --- a/tests/script/unique/http/opentsdb.sim +++ b/tests/script/unique/http/opentsdb.sim @@ -125,7 +125,7 @@ endi system_content curl -u root:taosdata -d '[{"metric": "sys_cpu","timestamp": 1346846400,"value": 18,"tags": {"host": "web01","group1": "1","group1": "1","group1": "1","group1": "1","group1": "1","dc": "lga"}}]' 127.0.0.1:6020/opentsdb/db/put print $system_content -if $system_content != @{"errors":[{"datapoint":{"metric":"sys_cpu","stable":"sys_cpu_d_bbbbbbb","table":"sys_cpu_d_bbbbbbb_lga_1_1_1_1_1_web01","timestamp":1346846400,"value":18.000000,"tags":{"dc":"lga","group1":"1","group1":"1","group1":"1","group1":"1","group1":"1","host":"web01"},"status":"error","code":-2147483135}}],"failed":1,"success":0,"affected_rows":0}@ then +if $system_content != @{"errors":[{"datapoint":{"metric":"sys_cpu","stable":"sys_cpu_d_bbbbbbb","table":"sys_cpu_d_bbbbbbb_lga_1_1_1_1_1_web01","timestamp":1346846400,"value":18.000000,"tags":{"dc":"lga","group1":"1","group1":"1","group1":"1","group1":"1","group1":"1","host":"web01"},"status":"error","code":-2147482782}}],"failed":1,"success":0,"affected_rows":0}@ then return -1 endi diff --git a/tests/script/unique/stable/dnode2_stop.sim b/tests/script/unique/stable/dnode2_stop.sim index 0a801d9c7e9e6cb2af4eb013f0d7e8aecc76ff1c..cb7df5a3cf64afc694d471345e94c400b862756d 100644 --- a/tests/script/unique/stable/dnode2_stop.sim +++ b/tests/script/unique/stable/dnode2_stop.sim @@ -74,6 +74,7 @@ endi sleep 100 system sh/exec.sh -n dnode2 -s stop -x SIGINT +sleep 5000 print =============== step2 sql select count(*) from $mt -x step2 @@ -85,7 +86,7 @@ sql select count(tbcol) from $mt -x step21 step21: system sh/exec.sh -n dnode2 -s start -sleep 10000 +sleep 5000 print =============== step3 sql select count(tbcol) as c from $mt where ts <= 1519833840000