diff --git a/Jenkinsfile2 b/Jenkinsfile2 index 55bd5466ed..f4dcdb242e 100644 --- a/Jenkinsfile2 +++ b/Jenkinsfile2 @@ -314,7 +314,7 @@ def pre_test_build_win() { cd %WIN_CONNECTOR_ROOT% python.exe -m pip install --upgrade pip python -m pip uninstall taospy -y - python -m pip install taospy==2.7.6 + python -m pip install taospy==2.7.10 xcopy /e/y/i/f %WIN_INTERNAL_ROOT%\\debug\\build\\lib\\taos.dll C:\\Windows\\System32 ''' return 1 diff --git a/docs/en/12-taos-sql/02-database.md b/docs/en/12-taos-sql/02-database.md index af619c11a5..68dba3fc56 100644 --- a/docs/en/12-taos-sql/02-database.md +++ b/docs/en/12-taos-sql/02-database.md @@ -43,7 +43,7 @@ database_option: { ## Parameters -- BUFFER: specifies the size (in MB) of the write buffer for each vnode. Enter a value between 3 and 16384. The default value is 96. +- BUFFER: specifies the size (in MB) of the write buffer for each vnode. Enter a value between 3 and 16384. The default value is 256. - CACHEMODEL: specifies how the latest data in subtables is stored in the cache. The default value is none. - none: The latest data is not cached. - last_row: The last row of each subtable is cached. This option significantly improves the performance of the LAST_ROW function. diff --git a/docs/zh/12-taos-sql/02-database.md b/docs/zh/12-taos-sql/02-database.md index b329413aa8..d79a985089 100644 --- a/docs/zh/12-taos-sql/02-database.md +++ b/docs/zh/12-taos-sql/02-database.md @@ -42,7 +42,7 @@ database_option: { ### 参数说明 -- BUFFER: 一个 VNODE 写入内存池大小,单位为 MB,默认为 96,最小为 3,最大为 16384。 +- BUFFER: 一个 VNODE 写入内存池大小,单位为 MB,默认为 256,最小为 3,最大为 16384。 - CACHEMODEL:表示是否在内存中缓存子表的最近数据。默认为 none。 - none:表示不缓存。 - last_row:表示缓存子表最近一行数据。这将显著改善 LAST_ROW 函数的性能表现。 diff --git a/source/client/src/clientHb.c b/source/client/src/clientHb.c index ccdc9bba8e..04cb1821b0 100644 --- a/source/client/src/clientHb.c +++ b/source/client/src/clientHb.c @@ -74,41 +74,48 @@ static int32_t hbUpdateUserAuthInfo(SAppHbMgr *pAppHbMgr, SUserAuthBatchRsp *bat continue; } - SClientHbReq *pReq = NULL; + SClientHbReq *pReq = NULL; + SGetUserAuthRsp *pRsp = NULL; while ((pReq = taosHashIterate(hbMgr->activeInfo, pReq))) { STscObj *pTscObj = (STscObj *)acquireTscObj(pReq->connKey.tscRid); if (!pTscObj) { continue; } - for (int32_t j = 0; j < TARRAY_SIZE(batchRsp->pArray); ++j) { - SGetUserAuthRsp *rsp = TARRAY_GET_ELEM(batchRsp->pArray, j); - if (0 == strncmp(rsp->user, pTscObj->user, TSDB_USER_LEN)) { - pTscObj->authVer = rsp->version; - -#if 0 // make jenkins happy temporarily. After PR pass, enable these lines again. - if (pTscObj->sysInfo != rsp->sysInfo) { - tscDebug("update sysInfo of user %s from %" PRIi8 " to %" PRIi8 ", tscRid:%" PRIi64, rsp->user, - pTscObj->sysInfo, rsp->sysInfo, pTscObj->id); - pTscObj->sysInfo = rsp->sysInfo; + if (!pRsp) { + for (int32_t j = 0; j < TARRAY_SIZE(batchRsp->pArray); ++j) { + SGetUserAuthRsp *rsp = TARRAY_GET_ELEM(batchRsp->pArray, j); + if (0 == strncmp(rsp->user, pTscObj->user, TSDB_USER_LEN)) { + pRsp = rsp; + break; } -#endif - if (pTscObj->passInfo.fp) { - SPassInfo *passInfo = &pTscObj->passInfo; - int32_t oldVer = atomic_load_32(&passInfo->ver); - if (oldVer < rsp->passVer) { - atomic_store_32(&passInfo->ver, rsp->passVer); - if (passInfo->fp) { - (*passInfo->fp)(passInfo->param, &rsp->passVer, TAOS_NOTIFY_PASSVER); - } - tscDebug("update passVer of user %s from %d to %d, tscRid:%" PRIi64, rsp->user, oldVer, - atomic_load_32(&passInfo->ver), pTscObj->id); - } - } - + } + if (!pRsp) { + releaseTscObj(pReq->connKey.tscRid); break; } } + + pTscObj->authVer = pRsp->version; + + if (pTscObj->sysInfo != pRsp->sysInfo) { + tscDebug("update sysInfo of user %s from %" PRIi8 " to %" PRIi8 ", tscRid:%" PRIi64, pRsp->user, + pTscObj->sysInfo, pRsp->sysInfo, pTscObj->id); + pTscObj->sysInfo = pRsp->sysInfo; + } + + if (pTscObj->passInfo.fp) { + SPassInfo *passInfo = &pTscObj->passInfo; + int32_t oldVer = atomic_load_32(&passInfo->ver); + if (oldVer < pRsp->passVer) { + atomic_store_32(&passInfo->ver, pRsp->passVer); + if (passInfo->fp) { + (*passInfo->fp)(passInfo->param, &pRsp->passVer, TAOS_NOTIFY_PASSVER); + } + tscDebug("update passVer of user %s from %d to %d, tscRid:%" PRIi64, pRsp->user, oldVer, + atomic_load_32(&passInfo->ver), pTscObj->id); + } + } releaseTscObj(pReq->connKey.tscRid); } } diff --git a/tests/parallel_test/run_case.sh b/tests/parallel_test/run_case.sh index 2d736e1414..206f99ff3d 100755 --- a/tests/parallel_test/run_case.sh +++ b/tests/parallel_test/run_case.sh @@ -76,10 +76,10 @@ ulimit -c unlimited md5sum /usr/lib/libtaos.so.1 md5sum /home/TDinternal/debug/build/lib/libtaos.so -#define taospy 2.7.6 +#define taospy 2.7.10 pip3 list|grep taospy pip3 uninstall taospy -y -pip3 install --default-timeout=120 taospy==2.7.6 +pip3 install --default-timeout=120 taospy==2.7.10 $TIMEOUT_CMD $cmd RET=$? diff --git a/tests/script/api/passwdTest.c b/tests/script/api/passwdTest.c index 1cc0072dc7..d9cb2128ef 100644 --- a/tests/script/api/passwdTest.c +++ b/tests/script/api/passwdTest.c @@ -32,7 +32,7 @@ #define nRoot 10 #define nUser 10 #define USER_LEN 24 -#define BUF_LEN 256 +#define BUF_LEN 1024 typedef uint16_t VarDataLenT; @@ -46,7 +46,7 @@ typedef uint16_t VarDataLenT; void createUsers(TAOS *taos, const char *host, char *qstr); void passVerTestMulti(const char *host, char *qstr); -void sysInfoTest(const char *host, char *qstr); +void sysInfoTest(TAOS *taos, const char *host, char *qstr); int nPassVerNotified = 0; TAOS *taosu[nRoot] = {0}; @@ -200,7 +200,7 @@ int main(int argc, char *argv[]) { } createUsers(taos, argv[1], qstr); passVerTestMulti(argv[1], qstr); - sysInfoTest(argv[1], qstr); + sysInfoTest(taos, argv[1], qstr); taos_close(taos); taos_cleanup(); @@ -299,26 +299,25 @@ void passVerTestMulti(const char *host, char *qstr) { // sleep(300); } -void sysInfoTest(const char *host, char *qstr) { - // root +void sysInfoTest(TAOS *taosRoot, const char *host, char *qstr) { TAOS *taos[nRoot] = {0}; - char userName[USER_LEN] = "root"; + char userName[USER_LEN] = "user0"; for (int i = 0; i < nRoot; ++i) { - taos[i] = taos_connect(host, "root", "taos", NULL, 0); + taos[i] = taos_connect(host, "user0", "taos", NULL, 0); if (taos[i] == NULL) { fprintf(stderr, "failed to connect to server, reason:%s\n", "null taos" /*taos_errstr(taos)*/); exit(1); } } - queryDB(taos[0], "create database if not exists demo11 vgroups 1 minrows 10"); - queryDB(taos[0], "create database if not exists demo12 vgroups 1 minrows 10"); - queryDB(taos[0], "create database if not exists demo13 vgroups 1 minrows 10"); + queryDB(taosRoot, "create database if not exists demo11 vgroups 1 minrows 10"); + queryDB(taosRoot, "create database if not exists demo12 vgroups 1 minrows 10"); + queryDB(taosRoot, "create database if not exists demo13 vgroups 1 minrows 10"); - queryDB(taos[0], "create table demo11.stb (ts timestamp, c1 int) tags(t1 int)"); - queryDB(taos[0], "create table demo12.stb (ts timestamp, c1 int) tags(t1 int)"); - queryDB(taos[0], "create table demo13.stb (ts timestamp, c1 int) tags(t1 int)"); + queryDB(taosRoot, "create table demo11.stb (ts timestamp, c1 int) tags(t1 int)"); + queryDB(taosRoot, "create table demo12.stb (ts timestamp, c1 int) tags(t1 int)"); + queryDB(taosRoot, "create table demo13.stb (ts timestamp, c1 int) tags(t1 int)"); sprintf(qstr, "show grants"); char output[BUF_LEN]; @@ -340,7 +339,7 @@ _REP: exit(EXIT_FAILURE); } - queryDB(taos[0], "alter user root sysinfo 0"); + queryDB(taosRoot, "alter user user0 sysinfo 0"); fprintf(stderr, "%s:%d sleep 2 seconds to wait HB take effect\n", __func__, __LINE__); for (int i = 1; i <= 2; ++i) { @@ -357,7 +356,7 @@ _REP: } taos_free_result(res); - queryDB(taos[0], "alter user root sysinfo 1"); + queryDB(taosRoot, "alter user user0 sysinfo 1"); fprintf(stderr, "%s:%d sleep 2 seconds to wait HB take effect\n", __func__, __LINE__); for (int i = 1; i <= 2; ++i) { sleep(1);