From eca8d7ad74c0446787560fff4f407b25c45f89eb Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Wed, 21 Dec 2022 09:48:27 +0800 Subject: [PATCH 1/5] fix: the mnode is also offline when dnode on it is offline --- source/dnode/mnode/impl/src/mndMnode.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/dnode/mnode/impl/src/mndMnode.c b/source/dnode/mnode/impl/src/mndMnode.c index 9c847c1138..198af420ce 100644 --- a/source/dnode/mnode/impl/src/mndMnode.c +++ b/source/dnode/mnode/impl/src/mndMnode.c @@ -633,6 +633,7 @@ static int32_t mndRetrieveMnodes(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB const char *status = "ready"; if (objStatus == SDB_STATUS_CREATING) status = "creating"; if (objStatus == SDB_STATUS_DROPPING) status = "dropping"; + if (!mndIsDnodeOnline(pObj->pDnode, curMs)) status = "offline"; char b3[9 + VARSTR_HEADER_SIZE] = {0}; STR_WITH_MAXSIZE_TO_VARSTR(b3, status, pShow->pMeta->pSchemas[cols].bytes); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); From 9dc84bb748dd3fe592ca8aaf79ba55f5a5fd60e0 Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Wed, 21 Dec 2022 10:16:38 +0800 Subject: [PATCH 2/5] fix: show tables/stables privilege error --- source/libs/parser/src/parAstParser.c | 4 ++-- source/libs/parser/src/parAuthenticator.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/libs/parser/src/parAstParser.c b/source/libs/parser/src/parAstParser.c index 92b9e67f37..8346ab8c05 100644 --- a/source/libs/parser/src/parAstParser.c +++ b/source/libs/parser/src/parAstParser.c @@ -434,7 +434,7 @@ static int32_t collectMetaKeyFromShowStables(SCollectMetaKeyCxt* pCxt, SShowStmt pCxt->pMetaCache); if (TSDB_CODE_SUCCESS == code) { code = reserveUserAuthInCache(pCxt->pParseCxt->acctId, pCxt->pParseCxt->pUser, - ((SValueNode*)pStmt->pDbName)->literal, AUTH_TYPE_READ, pCxt->pMetaCache); + ((SValueNode*)pStmt->pDbName)->literal, AUTH_TYPE_READ_OR_WRITE, pCxt->pMetaCache); } return code; } @@ -452,7 +452,7 @@ static int32_t collectMetaKeyFromShowTables(SCollectMetaKeyCxt* pCxt, SShowStmt* } if (TSDB_CODE_SUCCESS == code) { code = reserveUserAuthInCache(pCxt->pParseCxt->acctId, pCxt->pParseCxt->pUser, - ((SValueNode*)pStmt->pDbName)->literal, AUTH_TYPE_READ, pCxt->pMetaCache); + ((SValueNode*)pStmt->pDbName)->literal, AUTH_TYPE_READ_OR_WRITE, pCxt->pMetaCache); } return code; } diff --git a/source/libs/parser/src/parAuthenticator.c b/source/libs/parser/src/parAuthenticator.c index 33999fda52..4fd711e0ea 100644 --- a/source/libs/parser/src/parAuthenticator.c +++ b/source/libs/parser/src/parAuthenticator.c @@ -97,7 +97,7 @@ static int32_t authInsert(SAuthCxt* pCxt, SInsertStmt* pInsert) { } static int32_t authShowTables(SAuthCxt* pCxt, SShowStmt* pStmt) { - return checkAuth(pCxt, ((SValueNode*)pStmt->pDbName)->literal, AUTH_TYPE_READ); + return checkAuth(pCxt, ((SValueNode*)pStmt->pDbName)->literal, AUTH_TYPE_READ_OR_WRITE); } static int32_t authShowCreateTable(SAuthCxt* pCxt, SShowCreateTableStmt* pStmt) { From 893cf18f8ed31cda9a3de27e9d92642ae8a12e02 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Wed, 21 Dec 2022 11:27:59 +0800 Subject: [PATCH 3/5] test: adjust case --- .../6-cluster/clusterCommonCheck.py | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/system-test/6-cluster/clusterCommonCheck.py b/tests/system-test/6-cluster/clusterCommonCheck.py index 7cbe9d9680..a69d9707e4 100644 --- a/tests/system-test/6-cluster/clusterCommonCheck.py +++ b/tests/system-test/6-cluster/clusterCommonCheck.py @@ -174,34 +174,34 @@ class ClusterComCheck: tdLog.exit("mnode number is correct") if offlineDnodeNo == 1: if tdSql.queryResult[0][2]=='offline' : - if tdSql.queryResult[1][2]=='leader' and tdSql.queryResult[1][3]== 'ready' : - if tdSql.queryResult[2][2]=='follower' and tdSql.queryResult[2][3]== 'ready' : + if tdSql.queryResult[1][2]=='leader': + if tdSql.queryResult[2][2]=='follower': tdLog.success("stop mnodes on dnode %d successfully in 10s" %offlineDnodeNo) return True - elif tdSql.queryResult[1][2]=='follower' and tdSql.queryResult[1][3]== 'ready' : - if tdSql.queryResult[2][2]=='leader' and tdSql.queryResult[2][3]== 'ready' : + elif tdSql.queryResult[1][2]=='follower': + if tdSql.queryResult[2][2]=='leader': tdLog.debug("stop mnodes on dnode %d successfully in 10s" %offlineDnodeNo) return True count+=1 elif offlineDnodeNo == 2: if tdSql.queryResult[1][2]=='offline' : - if tdSql.queryResult[0][2]=='leader' and tdSql.queryResult[0][3]== 'ready' : - if tdSql.queryResult[2][2]=='follower' and tdSql.queryResult[2][3]== 'ready' : + if tdSql.queryResult[0][2]=='leader': + if tdSql.queryResult[2][2]=='follower': tdLog.debug("stop mnodes on dnode %d successfully in 10s" %offlineDnodeNo) return True - elif tdSql.queryResult[0][2]=='follower' and tdSql.queryResult[0][3]== 'ready' : - if tdSql.queryResult[2][2]=='leader' and tdSql.queryResult[2][3]== 'ready' : + elif tdSql.queryResult[0][2]=='follower': + if tdSql.queryResult[2][2]=='leader': tdLog.debug("stop mnodes on dnode %d successfully in 10s" %offlineDnodeNo) return True count+=1 elif offlineDnodeNo == 3: if tdSql.queryResult[2][2]=='offline' : - if tdSql.queryResult[0][2]=='leader' and tdSql.queryResult[0][3]== 'ready' : - if tdSql.queryResult[1][2]=='follower' and tdSql.queryResult[1][3]== 'ready' : + if tdSql.queryResult[0][2]=='leader': + if tdSql.queryResult[1][2]=='follower': tdLog.debug("stop mnodes on dnode %d successfully in 10s" %offlineDnodeNo) return True - elif tdSql.queryResult[0][2]=='follower' and tdSql.queryResult[0][3]== 'ready' : - if tdSql.queryResult[1][2]=='leader' and tdSql.queryResult[1][3]== 'ready' : + elif tdSql.queryResult[0][2]=='follower': + if tdSql.queryResult[1][2]=='leader': tdLog.debug("stop mnodes on dnode %d successfully in 10s" %offlineDnodeNo) return True count+=1 @@ -219,8 +219,8 @@ class ClusterComCheck: else: tdLog.exit("mnode number is correct") if tdSql.queryResult[0][2]=='leader' : - if tdSql.queryResult[1][2]=='offline' and tdSql.queryResult[1][3]== 'ready' : - if tdSql.queryResult[2][2]=='offline' and tdSql.queryResult[2][3]== 'ready' : + if tdSql.queryResult[1][2]=='offline': + if tdSql.queryResult[2][2]=='offline': tdLog.success("stop mnodes of follower on dnode successfully in 10s") return True count+=1 From 21af5e12f8220e012f637600f425a5b29813a1e2 Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Wed, 21 Dec 2022 12:00:31 +0800 Subject: [PATCH 4/5] fix: show tables/stables privilege error --- tests/system-test/0-others/user_control.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/system-test/0-others/user_control.py b/tests/system-test/0-others/user_control.py index 3918828646..d27892b588 100644 --- a/tests/system-test/0-others/user_control.py +++ b/tests/system-test/0-others/user_control.py @@ -283,7 +283,7 @@ class TDTestCase: use.error(f"insert into {DBNAME}.{CTBNAME} (ts) values (now())") elif check_priv == PRIVILEGES_WRITE: use.query(f"use {DBNAME}") - use.error(f"show {DBNAME}.tables") + use.query(f"show {DBNAME}.tables") use.error(f"select * from {DBNAME}.{CTBNAME}") use.query(f"insert into {DBNAME}.{CTBNAME} (ts) values (now())") elif check_priv is None: From 78ab23aad83ff3c3ee076e200b5f4c55a4d89cd2 Mon Sep 17 00:00:00 2001 From: sunpeng Date: Wed, 21 Dec 2022 13:47:55 +0800 Subject: [PATCH 5/5] enh: update taosadapter (#19052) --- cmake/taosadapter_CMakeLists.txt.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/taosadapter_CMakeLists.txt.in b/cmake/taosadapter_CMakeLists.txt.in index 2a9b4553ac..a47b3b0feb 100644 --- a/cmake/taosadapter_CMakeLists.txt.in +++ b/cmake/taosadapter_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taosadapter ExternalProject_Add(taosadapter GIT_REPOSITORY https://github.com/taosdata/taosadapter.git - GIT_TAG 4dfc4d1 + GIT_TAG f0c1753 SOURCE_DIR "${TD_SOURCE_DIR}/tools/taosadapter" BINARY_DIR "" #BUILD_IN_SOURCE TRUE