diff --git a/src/mnode/src/mgmtDb.c b/src/mnode/src/mgmtDb.c index d57b75501ade303133fd594008c5869659a7b7b5..a1b5f12ffb069bbbc82c071d83658144dcd94ac1 100644 --- a/src/mnode/src/mgmtDb.c +++ b/src/mnode/src/mgmtDb.c @@ -884,6 +884,8 @@ void mgmtDropAllDbs(SAcctObj *pAcct) { SDbObj *pDb = NULL; void * pNode = NULL; + mPrint("acct:%s, all dbs will be dropped from sdb", pAcct->user); + while (1) { pNode = sdbFetchRow(tsDbSdb, pNode, (void **)&pDb); if (pDb == NULL) break; @@ -902,5 +904,5 @@ void mgmtDropAllDbs(SAcctObj *pAcct) { mgmtDecDbRef(pDb); } - mTrace("acct:%s, all dbs is is dropped from sdb", pAcct->user, numOfDbs); + mPrint("acct:%s, all dbs:%d is dropped from sdb", pAcct->user, numOfDbs); } diff --git a/src/mnode/src/mgmtDnode.c b/src/mnode/src/mgmtDnode.c index 562e6c05898238a28dfcc07feb081af146516e74..8afeadeb0c3b54d7a44c07e49d91479f6f966559 100644 --- a/src/mnode/src/mgmtDnode.c +++ b/src/mnode/src/mgmtDnode.c @@ -260,7 +260,7 @@ void mgmtProcessCfgDnodeMsg(SQueuedMsg *pMsg) { } uint32_t dnodeIp = inet_addr(pCmCfgDnode->ip); - if (strcmp(pMsg->pUser->pAcct->user, "root") != 0) { + if (strcmp(pMsg->pUser->user, "root") != 0) { rpcRsp.code = TSDB_CODE_NO_RIGHTS; } else { SRpcIpSet ipSet = mgmtGetIpSetFromIp(dnodeIp); @@ -469,7 +469,7 @@ static void mgmtProcessCreateDnodeMsg(SQueuedMsg *pMsg) { SCMCreateDnodeMsg *pCreate = pMsg->pCont; - if (strcmp(pMsg->pUser->pAcct->user, "root") != 0) { + if (strcmp(pMsg->pUser->user, "root") != 0) { rpcRsp.code = TSDB_CODE_NO_RIGHTS; } else { uint32_t ip = inet_addr(pCreate->ip); @@ -489,7 +489,7 @@ static void mgmtProcessDropDnodeMsg(SQueuedMsg *pMsg) { SRpcMsg rpcRsp = {.handle = pMsg->thandle, .pCont = NULL, .contLen = 0, .code = 0, .msgType = 0}; SCMDropDnodeMsg *pDrop = pMsg->pCont; - if (strcmp(pMsg->pUser->pAcct->user, "root") != 0) { + if (strcmp(pMsg->pUser->user, "root") != 0) { rpcRsp.code = TSDB_CODE_NO_RIGHTS; } else { uint32_t ip = inet_addr(pDrop->ip); diff --git a/src/mnode/src/mgmtSdb.c b/src/mnode/src/mgmtSdb.c index 9e4bfb453b10113852b20c4aab9e1ba5d3f7f13e..0aae7565291c9229b97ae99708bdcbccf80e126d 100644 --- a/src/mnode/src/mgmtSdb.c +++ b/src/mnode/src/mgmtSdb.c @@ -333,7 +333,7 @@ void sdbIncRef(void *handle, void *pRow) { SSdbTable *pTable = handle; int32_t * pRefCount = (int32_t *)(pRow + pTable->refCountPos); atomic_add_fetch_32(pRefCount, 1); - if (0 && strcmp(pTable->tableName, "accounts") == 0) { + if (1 && strcmp(pTable->tableName, "accounts") == 0) { sdbTrace("table:%s, add ref to record:%s:%s:%d", pTable->tableName, pTable->tableName, sdbGetkeyStr(pTable, pRow), *pRefCount); } @@ -345,7 +345,7 @@ void sdbDecRef(void *handle, void *pRow) { SSdbTable *pTable = handle; int32_t * pRefCount = (int32_t *)(pRow + pTable->refCountPos); int32_t refCount = atomic_sub_fetch_32(pRefCount, 1); - if (0 && strcmp(pTable->tableName, "accounts") == 0) { + if (1 && strcmp(pTable->tableName, "accounts") == 0) { sdbTrace("table:%s, def ref of record:%s:%s:%d", pTable->tableName, pTable->tableName, sdbGetkeyStr(pTable, pRow), *pRefCount); } @@ -400,6 +400,8 @@ static int32_t sdbInsertHash(SSdbTable *pTable, SSdbOper *pOper) { if (pTable->keyType == SDB_KEY_AUTO) { pTable->autoIndex = MAX(pTable->autoIndex, *((uint32_t *)pOper->pObj)); + } else { + pTable->autoIndex++; } pthread_mutex_unlock(&pTable->mutex); diff --git a/src/mnode/src/mgmtTable.c b/src/mnode/src/mgmtTable.c index 3b1437748253ce7e9673d88d25cef3117a0fe0cc..b8228e8e475529f13a597c2398d34246fa8891cf 100644 --- a/src/mnode/src/mgmtTable.c +++ b/src/mnode/src/mgmtTable.c @@ -1109,12 +1109,11 @@ void mgmtDropAllSuperTables(SDbObj *pDropDb) { int32_t dbNameLen = strlen(pDropDb->name); SSuperTableObj *pTable = NULL; + mPrint("db:%s, all super tables will be dropped from sdb", pDropDb->name); + while (1) { - mgmtDecTableRef(pTable); pNode = sdbFetchRow(tsSuperTableSdb, pNode, (void **)&pTable); - if (pTable == NULL) { - break; - } + if (pTable == NULL) break; if (strncmp(pDropDb->name, pTable->info.tableId, dbNameLen) == 0) { SSdbOper oper = { @@ -1125,10 +1124,12 @@ void mgmtDropAllSuperTables(SDbObj *pDropDb) { sdbDeleteRow(&oper); pNode = pLastNode; numOfTables ++; - continue; } + + mgmtDecTableRef(pTable); } - mTrace("db:%s, all super tables:%d is dropped from sdb", pDropDb->name, numOfTables); + + mPrint("db:%s, all super tables:%d is dropped from sdb", pDropDb->name, numOfTables); } static int32_t mgmtSetSchemaFromSuperTable(SSchema *pSchema, SSuperTableObj *pTable) { @@ -1678,12 +1679,11 @@ void mgmtDropAllChildTables(SDbObj *pDropDb) { int32_t dbNameLen = strlen(pDropDb->name); SChildTableObj *pTable = NULL; + mPrint("db:%s, all child tables will be dropped from sdb", pDropDb->name); + while (1) { - mgmtDecTableRef(pTable); pNode = sdbFetchRow(tsChildTableSdb, pNode, (void **)&pTable); - if (pTable == NULL) { - break; - } + if (pTable == NULL) break; if (strncmp(pDropDb->name, pTable->info.tableId, dbNameLen) == 0) { SSdbOper oper = { @@ -1694,11 +1694,11 @@ void mgmtDropAllChildTables(SDbObj *pDropDb) { sdbDeleteRow(&oper); pNode = pLastNode; numOfTables++; - continue; } + mgmtDecTableRef(pTable); } - mTrace("db:%s, all child tables:%d is dropped from sdb", pDropDb->name, numOfTables); + mPrint("db:%s, all child tables:%d is dropped from sdb", pDropDb->name, numOfTables); } static void mgmtDropAllChildTablesInStable(SSuperTableObj *pStable) { @@ -1707,12 +1707,11 @@ static void mgmtDropAllChildTablesInStable(SSuperTableObj *pStable) { int32_t numOfTables = 0; SChildTableObj *pTable = NULL; + mPrint("stable:%s, all child tables will dropped from sdb", pStable->info.tableId, numOfTables); + while (1) { - mgmtDecTableRef(pTable); pNode = sdbFetchRow(tsChildTableSdb, pNode, (void **)&pTable); - if (pTable == NULL) { - break; - } + if (pTable == NULL) break; if (pTable->superTable == pStable) { SSdbOper oper = { @@ -1723,11 +1722,12 @@ static void mgmtDropAllChildTablesInStable(SSuperTableObj *pStable) { sdbDeleteRow(&oper); pNode = pLastNode; numOfTables++; - continue; } + + mgmtDecTableRef(pTable); } - mTrace("stable:%s, all child tables:%d is dropped from sdb", pStable->info.tableId, numOfTables); + mPrint("stable:%s, all child tables:%d is dropped from sdb", pStable->info.tableId, numOfTables); } static SChildTableObj* mgmtGetTableByPos(uint32_t dnodeId, int32_t vnode, int32_t sid) { diff --git a/src/mnode/src/mgmtUser.c b/src/mnode/src/mgmtUser.c index a2ec2a32ad0b7fdad87b851ed8cce81ac588197b..708f436d0a75b8295128a1bed968f67f81cbf8a7 100644 --- a/src/mnode/src/mgmtUser.c +++ b/src/mnode/src/mgmtUser.c @@ -353,6 +353,7 @@ static void mgmtProcessCreateUserMsg(SQueuedMsg *pMsg) { mLPrint("user:%s, is created by %s", pCreate->user, pOperUser->user); } } else { + mError("user:%s, no rights to create user", pOperUser->user); code = TSDB_CODE_NO_RIGHTS; } @@ -398,6 +399,7 @@ static void mgmtProcessAlterUserMsg(SQueuedMsg *pMsg) { code = mgmtUpdateUser(pUser); mLPrint("user:%s, password is altered by %s, result:%s", pUser->user, pOperUser->user, tstrerror(code)); } else { + mError("user:%s, no rights to ater user", pOperUser->user); code = TSDB_CODE_NO_RIGHTS; } @@ -440,11 +442,13 @@ static void mgmtProcessAlterUserMsg(SQueuedMsg *pMsg) { code = mgmtUpdateUser(pUser); mLPrint("user:%s, privilege is altered by %s, result:%s", pUser->user, pOperUser->user, tstrerror(code)); } else { + mError("user:%s, no rights to ater user", pOperUser->user); code = TSDB_CODE_NO_RIGHTS; } mgmtSendSimpleResp(pMsg->thandle, code); } else { + mError("user:%s, no rights to ater user", pOperUser->user); mgmtSendSimpleResp(pMsg->thandle, TSDB_CODE_NO_RIGHTS); } diff --git a/src/mnode/src/mgmtVgroup.c b/src/mnode/src/mgmtVgroup.c index 4088b37e8a2e07b8dc2760e43eb51bbe2949cbae..bec4dbe83a8718712f815bd3ce354d0515756fd0 100644 --- a/src/mnode/src/mgmtVgroup.c +++ b/src/mnode/src/mgmtVgroup.c @@ -744,12 +744,13 @@ static void mgmtProcessVnodeCfgMsg(SRpcMsg *rpcMsg) { void mgmtDropAllVgroups(SDbObj *pDropDb) { void *pNode = NULL; void *pLastNode = NULL; - int32_t numOfTables = 0; + int32_t numOfVgroups = 0; int32_t dbNameLen = strlen(pDropDb->name); SVgObj *pVgroup = NULL; + mPrint("db:%s, all vgroups will be dropped from sdb", pDropDb->name); + while (1) { - mgmtDecVgroupRef(pVgroup); pNode = sdbFetchRow(tsVgroupSdb, pNode, (void **)&pVgroup); if (pVgroup == NULL) break; @@ -761,12 +762,14 @@ void mgmtDropAllVgroups(SDbObj *pDropDb) { }; sdbDeleteRow(&oper); pNode = pLastNode; - numOfTables++; - continue; + numOfVgroups++; } + + mgmtSendDropVgroupMsg(pVgroup, NULL); + mgmtDecVgroupRef(pVgroup); } - mTrace("db:%s, all vgroups is dropped from sdb", pDropDb->name, numOfTables); + mPrint("db:%s, all vgroups:%d is dropped from sdb", pDropDb->name, numOfVgroups); } void mgmtAlterVgroup(SVgObj *pVgroup, void *ahandle) { diff --git a/tests/script/sh/deploy.sh b/tests/script/sh/deploy.sh index 41ba3c425ad9cf8e1e587ee6cdeef75c3f5514dc..b1aa7c6382c9305ee34c92ebc901beb1e974ee9b 100755 --- a/tests/script/sh/deploy.sh +++ b/tests/script/sh/deploy.sh @@ -93,7 +93,7 @@ echo "privateIp $NODE_IP" >> $TAOS_CFG echo "dDebugFlag 199" >> $TAOS_CFG echo "mDebugFlag 199" >> $TAOS_CFG echo "sdbDebugFlag 199" >> $TAOS_CFG -echo "rpcDebugFlag 135" >> $TAOS_CFG +echo "rpcDebugFlag 131" >> $TAOS_CFG echo "tmrDebugFlag 131" >> $TAOS_CFG echo "cDebugFlag 135" >> $TAOS_CFG echo "httpDebugFlag 131" >> $TAOS_CFG diff --git a/tests/script/unique/account/account_delete.sim b/tests/script/unique/account/account_delete.sim index 35cdcabfc7cced5fa6e0db2798b7922fb2d00b49..f4bc8d0a2fc4b34cf95117b413b0a9754c1e14d6 100644 --- a/tests/script/unique/account/account_delete.sim +++ b/tests/script/unique/account/account_delete.sim @@ -59,10 +59,17 @@ endi sql drop account oroot print ============= step4 -sleep 2000 +$x = 0 +show4: + $x = $x + 1 + sleep 2000 + if $x == 10 then + return -1 + endi + sql show dnodes -if $data02 != 0 then - return -1 +if $data03 != 0 then + goto show4 endi print ============= step5 diff --git a/tests/script/unique/account/basic.sim b/tests/script/unique/account/basic.sim index 7e386bb04f82116c6a8cad3260d5aa885eaaa0ea..6f64975ac284d6e420a76a7fd4e356d1beee023f 100644 --- a/tests/script/unique/account/basic.sim +++ b/tests/script/unique/account/basic.sim @@ -1,6 +1,6 @@ system sh/stop_dnodes.sh system sh/deploy.sh -n dnode1 -m 192.168.0.1 -i 192.168.0.1 -system sh/exec_up_up.sh -n dnode1 -s start +system sh/exec_up.sh -n dnode1 -s start sql connect print =============== show accounts diff --git a/tests/script/unique/account/monitor.sim b/tests/script/unique/account/monitor.sim deleted file mode 100644 index ce71fb766e71d83e51bae499d67b813920ccad90..0000000000000000000000000000000000000000 --- a/tests/script/unique/account/monitor.sim +++ /dev/null @@ -1,36 +0,0 @@ -system sh/stop_dnodes.sh - -system sh/ip.sh -i 1 -s up -system sh/deploy.sh -n dnode1 -m 192.168.0.1 -i 192.168.0.1 -system sh/cfg.sh -n dnode1 -c monitor -v 0 - -print ========== step1 -system sh/cfg.sh -n dnode1 -c monitor -v 1 -system sh/cfg.sh -n dnode1 -c monitorInterval -v 1 -system sh/exec_up.sh -n dnode1 -s start - -sql connect -sleep 3000 - -print ========== step2 -sql drop database log -x step21 - return -1 -step21: -sql drop table log.cpu -x step22 - return -1 -step22: -sql drop user log -x step23 - return -1 -step23: - -print ========== step3 - -sleep 3000 -sql select * from log.dn -if $rows == 0 then - return -1 -endi - - - - diff --git a/tests/script/unique/account/paras.sim b/tests/script/unique/account/paras.sim index f312a30c145fe1f1b6e4572f431cc68393a378e1..14ee2f6c852a4be1dba8632ed0268da494287d8d 100644 --- a/tests/script/unique/account/paras.sim +++ b/tests/script/unique/account/paras.sim @@ -1,6 +1,6 @@ system sh/stop_dnodes.sh system sh/deploy.sh -n dnode1 -m 192.168.0.1 -i 192.168.0.1 -system sh/exec_up_up.sh -n dnode1 -s start +system sh/exec_up.sh -n dnode1 -s start sql connect print =============== show accounts diff --git a/tests/script/unique/account/testSuite.sim b/tests/script/unique/account/testSuite.sim index b48ebd9354018b61663182dcee2202936a92808d..dedaf029f74abc0def0ad120f5644d7967e27fe4 100644 --- a/tests/script/unique/account/testSuite.sim +++ b/tests/script/unique/account/testSuite.sim @@ -6,4 +6,7 @@ run unique/account/pass_len.sim run unique/account/user_create.sim run unique/account/user_len.sim run unique/account/authority.sim +run unique/account/basic.sim +run unique/account/paras.sim +run unique/account/usage.sim run unique/account/monitor.sim diff --git a/tests/script/unique/account/usage.sim b/tests/script/unique/account/usage.sim index 4f32e0047b9cbae34db1144cc1ab3d879ba1c1cc..5b334374c9a270422c0f84a5f7fcc88546bbd7c1 100644 --- a/tests/script/unique/account/usage.sim +++ b/tests/script/unique/account/usage.sim @@ -1,6 +1,6 @@ system sh/stop_dnodes.sh system sh/deploy.sh -n dnode1 -m 192.168.0.1 -i 192.168.0.1 -system sh/exec_up_up.sh -n dnode1 -s start +system sh/exec_up.sh -n dnode1 -s start sql connect print =============== show accounts