From b73b7754250a7923d5e477e9016c5bf5c8d1f300 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Thu, 11 Jun 2020 14:58:38 +0800 Subject: [PATCH 01/11] [td-225] fix previous generated sql object --- src/client/src/tscServer.c | 2 -- src/client/src/tscSubquery.c | 6 ++++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 3fb22f7f8d..4e20e57499 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -2220,9 +2220,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/tscSubquery.c b/src/client/src/tscSubquery.c index ddc41e52e5..3bc931a855 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; } From de9a4bb973c6b15bce41ccf9f630eb490933eb61 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Thu, 11 Jun 2020 16:36:54 +0800 Subject: [PATCH 02/11] scripts --- tests/script/unique/column/replica3.sim | 4 +- tests/script/unique/db/replica_add12.sim | 66 +++------------------ tests/script/unique/db/replica_reduce32.sim | 32 ++++------ tests/script/unique/http/opentsdb.sim | 2 +- tests/script/unique/stable/dnode2_stop.sim | 3 +- 5 files changed, 25 insertions(+), 82 deletions(-) diff --git a/tests/script/unique/column/replica3.sim b/tests/script/unique/column/replica3.sim index c21f71dc2c..2d6c194ef8 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 ff0dffe0e2..89502ce419 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 bc08911a7c..5516009369 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 61ce5127b4..58f6609d15 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 0a801d9c7e..cb7df5a3cf 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 From c2b95683adac2a5c318e9985315c83157b5e571c Mon Sep 17 00:00:00 2001 From: Jeff Tao Date: Thu, 11 Jun 2020 08:39:41 +0000 Subject: [PATCH 03/11] fix the memory leaking for qhandle case --- src/rpc/src/rpcMain.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/rpc/src/rpcMain.c b/src/rpc/src/rpcMain.c index 3bcea21a1b..70424c3fd4 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; From e1c183ba5df5b58fb7412c3f7e37cc381de83088 Mon Sep 17 00:00:00 2001 From: liu0x54 Date: Thu, 11 Jun 2020 08:45:35 +0000 Subject: [PATCH 04/11] [TD-599] add get vgroupinfo in tscBuildUpdateTagMsg --- src/client/src/tscServer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 4e20e57499..2a102a2ecc 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; } From 754eb6be0f1e1e17d6c86a60ecbdaf8570757f88 Mon Sep 17 00:00:00 2001 From: Hui Li Date: Thu, 11 Jun 2020 17:00:07 +0800 Subject: [PATCH 05/11] [add cluster cases] --- .../dn3_mn1_replica_change_dropDnod.sim | 4 +--- .../dn3_mn1_vnode_corruptFile_offline.sim | 8 +++---- .../dn3_mn1_vnode_corruptFile_online.sim | 6 ++--- .../offline_replica2_alterTable_online.sim | 22 +++++++++---------- .../offline_replica2_createTable_online.sim | 16 ++++++++------ .../offline_replica2_dropDb_online.sim | 4 ++-- .../offline_replica2_dropTable_online.sim | 14 ++++++------ .../offline_replica3_alterTable_online.sim | 8 +++---- .../offline_replica3_createTable_online.sim | 5 +++-- .../sync_replica2_alterTable_add.sim | 20 ++++++++--------- .../sync_replica2_alterTable_drop.sim | 14 ++++++------ .../arbitrator/sync_replica2_dropDb.sim | 6 ++--- .../arbitrator/sync_replica2_dropTable.sim | 16 +++++++------- .../sync_replica3_alterTable_add.sim | 4 ++-- .../sync_replica3_alterTable_drop.sim | 6 ++--- .../arbitrator/sync_replica3_dropDb.sim | 2 +- .../arbitrator/sync_replica3_dropTable.sim | 8 +++---- ...sync_replica_alterTable_background_add.sim | 4 ++-- ...ync_replica_alterTable_background_drop.sim | 4 ++-- .../sync_replica_dropTable_background.sim | 4 ++-- 20 files changed, 88 insertions(+), 87 deletions(-) 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 a7aaf018f1..4f29989aff 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 9f6486cfcb..be4c321c36 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 b3b71ccf51..1345bac4f8 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/offline_replica2_alterTable_online.sim b/tests/script/unique/arbitrator/offline_replica2_alterTable_online.sim index 990c77b050..bcbb7e81a5 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_createTable_online.sim b/tests/script/unique/arbitrator/offline_replica2_createTable_online.sim index eb76908ac9..e9b5e484eb 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 f4af4f4c9d..e2ffc2ab1d 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 56e468bf1a..ba8b1cd3b5 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 24deed212d..c7f02fdc51 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_createTable_online.sim b/tests/script/unique/arbitrator/offline_replica3_createTable_online.sim index f395d57211..113d322d85 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 06747ed589..9730842938 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 ecd8208281..21957871a5 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 fa19917e9f..9836284af9 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 cca4586b35..4793e8e535 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 d9dcea2b22..9277ad2c85 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 2c0a9f8747..6593d6933b 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 e73291d6f3..7099b1dc8e 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 20d157eeb5..f902b41de5 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 c5f9157e26..3867aa3699 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 5540eb96df..fb8bc60972 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 a52cecaa8e..485253027a 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 From 6fd452fdd68bc0fc380fcd74a57f2e703100d445 Mon Sep 17 00:00:00 2001 From: Hui Li Date: Thu, 11 Jun 2020 17:07:39 +0800 Subject: [PATCH 06/11] [add cluster cases] --- .../unique/arbitrator/dn3_mn2_killDnode.sim | 126 ++++++++++ .../offline_replica2_alterTag_online.sim | 232 ++++++++++++++++++ .../offline_replica3_alterTag_online.sim | 232 ++++++++++++++++++ tests/script/unique/arbitrator/testSuite.sim | 36 +++ 4 files changed, 626 insertions(+) create mode 100644 tests/script/unique/arbitrator/dn3_mn2_killDnode.sim create mode 100644 tests/script/unique/arbitrator/offline_replica2_alterTag_online.sim create mode 100644 tests/script/unique/arbitrator/offline_replica3_alterTag_online.sim create mode 100644 tests/script/unique/arbitrator/testSuite.sim 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 0000000000..57a833b8de --- /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_alterTag_online.sim b/tests/script/unique/arbitrator/offline_replica2_alterTag_online.sim new file mode 100644 index 0000000000..54e5c6a81f --- /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_replica3_alterTag_online.sim b/tests/script/unique/arbitrator/offline_replica3_alterTag_online.sim new file mode 100644 index 0000000000..97a8a0d6e0 --- /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/testSuite.sim b/tests/script/unique/arbitrator/testSuite.sim new file mode 100644 index 0000000000..d286ecfaf2 --- /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 From 73c158e1ce5d68da05c36d5a0c2edd2b874f47d1 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Thu, 11 Jun 2020 17:17:34 +0800 Subject: [PATCH 07/11] [TD-364] fix definite lost while get card info --- src/os/linux/src/linuxSysPara.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/os/linux/src/linuxSysPara.c b/src/os/linux/src/linuxSysPara.c index 8ae2630a15..0e76ab0046 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); } From b41e66d2e50a6339779f70f03cbd3deecbb48475 Mon Sep 17 00:00:00 2001 From: Hui Li Date: Thu, 11 Jun 2020 18:20:49 +0800 Subject: [PATCH 08/11] [TD-455] --- src/dnode/src/dnodeMgmt.c | 2 ++ src/vnode/src/vnodeMain.c | 1 + 2 files changed, 3 insertions(+) diff --git a/src/dnode/src/dnodeMgmt.c b/src/dnode/src/dnodeMgmt.c index 789a98f78e..d35e82fa47 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/vnode/src/vnodeMain.c b/src/vnode/src/vnodeMain.c index b952c07616..67ba891f93 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); From 26966cd82c3e90438ff30007bbb111ee90197679 Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Thu, 11 Jun 2020 18:25:58 +0800 Subject: [PATCH 09/11] fix drop_stable bug. --- .../random-test/random-test-multi-threading-3.py | 4 ++++ .../pytest/random-test/random-test-multi-threading.py | 10 ++++++++++ tests/pytest/random-test/random-test.py | 2 ++ 3 files changed, 16 insertions(+) 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 91f35ea7a5..47c4228a8f 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 997001157e..65b6dcd948 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 9cfc24f404..5eb356960a 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") From a65ebcee11b187bf6c6c01c9f8df859547919d80 Mon Sep 17 00:00:00 2001 From: Jeff Tao Date: Fri, 12 Jun 2020 01:09:41 +0000 Subject: [PATCH 10/11] add option "fqdn" to configure local FQDN --- src/common/inc/tglobal.h | 1 + src/common/src/tglobal.c | 21 ++++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/common/inc/tglobal.h b/src/common/inc/tglobal.h index 39144c3083..53d821b3d8 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/src/tglobal.c b/src/common/src/tglobal.c index 0cd0e48fbf..f44af78e9a 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); From c10730f8f54f8c9ebc2958eca99b292b7b058033 Mon Sep 17 00:00:00 2001 From: Bomin Zhang Date: Fri, 12 Jun 2020 09:44:05 +0800 Subject: [PATCH 11/11] fix compile error under higher version of gcc --- src/client/src/tscLocal.c | 3 ++- src/client/src/tscServer.c | 5 +++-- src/mnode/src/mnodeProfile.c | 18 ++++++++++++------ src/mnode/src/mnodeTable.c | 3 ++- src/mnode/src/mnodeUser.c | 3 ++- src/plugins/http/src/httpAuth.c | 6 ++++-- 6 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/client/src/tscLocal.c b/src/client/src/tscLocal.c index f550bbd000..eaf9c21bfb 100644 --- a/src/client/src/tscLocal.c +++ b/src/client/src/tscLocal.c @@ -279,7 +279,8 @@ static void tscProcessCurrentUser(SSqlObj *pSql) { pExpr->resType = TSDB_DATA_TYPE_BINARY; char* vx = calloc(1, pExpr->resBytes); - STR_WITH_MAXSIZE_TO_VARSTR(vx, pSql->pTscObj->user, sizeof(pSql->pTscObj->user)); + size_t size = sizeof(pSql->pTscObj->user); + STR_WITH_MAXSIZE_TO_VARSTR(vx, pSql->pTscObj->user, size); tscSetLocalQueryResult(pSql, vx, pExpr->aliasName, pExpr->resType, pExpr->resBytes); free(vx); diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 2a102a2ecc..8e87e8fd7a 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -1708,8 +1708,9 @@ int tscBuildSTableVgroupMsg(SSqlObj *pSql, SSqlInfo *pInfo) { for(int32_t i = 0; i < pQueryInfo->numOfTables; ++i) { STableMetaInfo *pTableMetaInfo = tscGetTableMetaInfoFromCmd(pCmd, pCmd->clauseIndex, i); - tstrncpy(pMsg, pTableMetaInfo->name, sizeof(pTableMetaInfo->name)); - pMsg += sizeof(pTableMetaInfo->name); + size_t size = sizeof(pTableMetaInfo->name); + tstrncpy(pMsg, pTableMetaInfo->name, size); + pMsg += size; } pCmd->msgType = TSDB_MSG_TYPE_CM_STABLE_VGROUP; diff --git a/src/mnode/src/mnodeProfile.c b/src/mnode/src/mnodeProfile.c index 5b637d03bd..4720fb0ddc 100644 --- a/src/mnode/src/mnodeProfile.c +++ b/src/mnode/src/mnodeProfile.c @@ -235,12 +235,14 @@ static int32_t mnodeRetrieveConns(SShowObj *pShow, char *data, int32_t rows, voi cols++; pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; - STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pConnObj->user, sizeof(pConnObj->user)); + size_t size = sizeof(pConnObj->user); + STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pConnObj->user, size); cols++; pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; snprintf(ipStr, sizeof(ipStr), "%s:%u", taosIpStr(pConnObj->ip), pConnObj->port); - STR_WITH_MAXSIZE_TO_VARSTR(pWrite, ipStr, sizeof(ipStr)); + size = sizeof(ipStr); + STR_WITH_MAXSIZE_TO_VARSTR(pWrite, ipStr, size); cols++; pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; @@ -358,12 +360,14 @@ static int32_t mnodeRetrieveQueries(SShowObj *pShow, char *data, int32_t rows, v cols++; pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; - STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pConnObj->user, sizeof(pConnObj->user)); + size_t size = sizeof(pConnObj->user); + STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pConnObj->user, size); cols++; pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; snprintf(ipStr, sizeof(ipStr), "%s:%u", taosIpStr(pConnObj->ip), pConnObj->port); - STR_WITH_MAXSIZE_TO_VARSTR(pWrite, ipStr, sizeof(ipStr)); + size = sizeof(ipStr); + STR_WITH_MAXSIZE_TO_VARSTR(pWrite, ipStr, size); cols++; pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; @@ -479,12 +483,14 @@ static int32_t mnodeRetrieveStreams(SShowObj *pShow, char *data, int32_t rows, v cols++; pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; - STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pConnObj->user, sizeof(pConnObj->user)); + size_t size = sizeof(pConnObj->user); + STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pConnObj->user, size); cols++; pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; snprintf(ipStr, sizeof(ipStr), "%s:%u", taosIpStr(pConnObj->ip), pConnObj->port); - STR_WITH_MAXSIZE_TO_VARSTR(pWrite, ipStr, sizeof(ipStr)); + size = sizeof(ipStr); + STR_WITH_MAXSIZE_TO_VARSTR(pWrite, ipStr, size); cols++; pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; diff --git a/src/mnode/src/mnodeTable.c b/src/mnode/src/mnodeTable.c index 89ac4b6cc4..0e255d011b 100644 --- a/src/mnode/src/mnodeTable.c +++ b/src/mnode/src/mnodeTable.c @@ -1770,7 +1770,8 @@ static int32_t mnodeAutoCreateChildTable(SMnodeMsg *pMsg) { return TSDB_CODE_MND_OUT_OF_MEMORY; } - tstrncpy(pCreateMsg->tableId, pInfo->tableId, sizeof(pInfo->tableId)); + size_t size = sizeof(pInfo->tableId); + tstrncpy(pCreateMsg->tableId, pInfo->tableId, size); tstrncpy(pCreateMsg->db, pMsg->pDb->name, sizeof(pCreateMsg->db)); pCreateMsg->igExists = 1; pCreateMsg->getMeta = 1; diff --git a/src/mnode/src/mnodeUser.c b/src/mnode/src/mnodeUser.c index ee79d962ba..95457c83a0 100644 --- a/src/mnode/src/mnodeUser.c +++ b/src/mnode/src/mnodeUser.c @@ -315,7 +315,8 @@ static int32_t mnodeRetrieveUsers(SShowObj *pShow, char *data, int32_t rows, voi cols = 0; pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; - STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pUser->user, sizeof(pUser->user)); + size_t size = sizeof(pUser->user); + STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pUser->user, size); cols++; pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows; diff --git a/src/plugins/http/src/httpAuth.c b/src/plugins/http/src/httpAuth.c index 61ca5b4cc9..cf2ce5ddd9 100644 --- a/src/plugins/http/src/httpAuth.c +++ b/src/plugins/http/src/httpAuth.c @@ -101,8 +101,10 @@ bool httpParseTaosdAuthToken(HttpContext *pContext, char *token, int len) { bool httpGenTaosdAuthToken(HttpContext *pContext, char *token, int maxLen) { char buffer[sizeof(pContext->user) + sizeof(pContext->pass)] = {0}; - tstrncpy(buffer, pContext->user, sizeof(pContext->user)); - tstrncpy(buffer + sizeof(pContext->user), pContext->pass, sizeof(pContext->pass)); + size_t size = sizeof(pContext->user); + tstrncpy(buffer, pContext->user, size); + size = sizeof(pContext->pass); + tstrncpy(buffer + sizeof(pContext->user), pContext->pass, size); char *encrypt = taosDesEncode(KEY_DES_4, buffer, TSDB_USER_LEN + TSDB_PASSWORD_LEN); char *base64 = base64_encode((const unsigned char *)encrypt, TSDB_USER_LEN + TSDB_PASSWORD_LEN);